靜態 偽靜態

2021-08-20 10:37:33 字數 3488 閱讀 5500

靜態:

將php程式生成靜態的

html

檔案,儲存到伺服器的磁碟中。 原理: 在使用者訪問

php程式時,首先檢測靜態的

html

檔案是否存在,如果存在直接輸出靜態檔案,如果靜態檔案不存在,查詢資料庫,生成靜態檔案,並輸出。 優勢: 減少

php程式編譯和對資料庫的查詢。 資料緩衝區: 資料緩衝區是使用者前端用來儲存、操縱資料的物件。 通過輸出控制函式實現純靜態化。

html靜態頁(真靜態)的好處有三點;一是減少伺服器對資料響應的負荷

,二是載入不用調動資料庫,響應速度快。三是便於優化引擎。

缺點也有三點:一是維護不方便,每次都要手動生成。三是空間占用比較大。三是生成的檔案多了,伺服器對html檔案的響應負擔也較重。

我們知道使用php進行**開發,一般執行結果直接輸出到遊覽器,為了使用

php生成靜態頁面,就需要使用輸出控制函式控制快取區,以便獲取快取區的內容,然後再輸出到靜態

html

頁面檔案中以實現**靜態化。

php生成靜態頁面的思路為:首先開啟快取,然後輸出了

html

內容(你也可以通過

include

將html

內容以檔案形式包含進來),之後獲取快取中的內容,清空快取後通過

php檔案讀寫函式將快取內容寫入到靜態

html

頁面檔案中。

php檔案讀寫教程?

獲得輸出的快取內容以生成靜態html頁面的過程需要使用三個函式:

ob_start()、ob_get_contents()、ob_end_clean()。
1、ob_start函式一般主要是用來開啟快取,注意使用ob_start之前不能有任何輸出,如空格、字元等。

2、ob_get_contents函式主要用來獲取快取中的內容以字串形式返回,注意此函式必須在ob_end_clean函式之前呼叫,否則獲取不到快取內容。

錄入fopen,fwrite,fclose(file_put_contents)。

3、ob_end_clean函式主要是清空快取中的內容並關閉快取,成功則返回true,失敗則返回false

ob_end_flush: 傳送內部緩衝區的內容到瀏覽器,並且關閉輸出緩衝區

函式格式:void ob_end_flush(void)

說明:這個函式傳送輸出緩衝區的內容(如果有的話)

php輸出控制函式(

output control

)有很多應用,今後將陸續展開。

至此,使用php生成靜態

html

頁面以實現**靜態化的方法就介紹完了,根據實際情況和需求你可以選擇不同的靜態化方法。

如果想採用區域性快取可以才ajax的方式

tp框架想要採用快取的話  開啟手冊  搜尋靜態規則定義 把快取配置項 貼上到config.php中

全域性搜尋核心**

偽靜態定義:

偽靜態是相對真實靜態來講的,通常我們為了增強搜尋引擎的友好面,都將文章內容生成靜態頁面,但是有的朋友為了實時的顯示一些資訊。或者還想運用動態指令碼解決一些問題。不能用靜態的方式來展示**內容。但是這就損失了對搜尋引擎的友好面。怎麼樣在兩者之間找個中間方法呢,這就產生了偽靜態技術。

好處:一,可以方便的實現對化化引擎的優化,並且比生成靜態更加方便。二、佔空間比較小。三、首頁每天都自動變化,不用維護。**首頁一

art1234.aspx

,這個虛成n個頁

,如art_1234.aspx,news_1234.aspx

,top_1234.aspx,

在不同的頁面放 不同的廣告

.總之是動態的,你就可以隨意動。

缺點:我看只有乙個,那就是效率不如生成html的,因為它不是真正意義上的靜態頁,每次請求是要讀取資料庫的。但你可以用快取技術來補償一下。

設定偽靜態:

apache下的

rewrite

配置主要有2種,一種是針對整個apache伺服器的配置,此種配置的

rewrite

規則是直接在此目錄下建立乙個

.htaccess

首先需要去除httpd.conf檔案中

"#loadmodule rewrite_module modules/mod_rewrite.so"

前面的"#"號; 

如果看到這裡說明已經重啟了

第一種方案

在未開啟vhost.conf的時候

在httpd.conf下書寫。

如果開啟了vhost.conf則在此

配置步驟如下:)然後再在

或者vhost.conf中書寫如下規則:

rewriteengine on

#當訪問任何以

t_開頭,以

.html

結尾的檔案時,將

$1用與

(.*)

匹配的字元替換後,訪問相應的

test.php

頁面 rewriterule ^/t_(.*).html$ /test.php?id=$1 #絕對路徑

第二種方案

針對apache伺服器下的某一目錄的配置,此種配置的

rewrite

規則需在此目錄下建立乙個

.htaccess

檔案來書寫。配置步驟如下:

(1)修改

檔案中的

"allowoverride none"

為"allowoverride all",

同時最好將

options

也置為"all",

否則可能會出問題。

(2)在目錄中建立

.htaccess

檔案(不一定非要根目錄),並用記事本開啟,書寫如下規則

: rewriteengine on

rewriterule ^t_(.*).html$ test.php?id=$1

rewriterule ^hello_(.*).html$ test/test.php?id=$1  #(相對路徑)

如何在tp中開啟偽靜態

偽靜態 mysql 靜態和偽靜態

一 偽靜態的用處 有些使用者覺得,偽靜態和真靜態實際被收錄量會相差很大,實在不然,從你個人角度,你去判定一下乙個帖子到底是真靜態還是偽靜態?估計很丟臉得出,由於所謂靜態的意思,就是位址中不帶問號,不帶問號的就是靜態,管他是真的還是偽的?搜尋引擎看得出嗎?所以說,實在不論是真的還是偽的,實在對於搜尋引...

apache偽靜態轉為nginx偽靜態

1.將原apache專案中的偽靜態檔案轉化為nginx的偽靜態 2.將轉化後的偽靜態覆蓋原來的偽靜態檔案內的內容 3.配置nginx伺服器的檔案 4.重新啟動nginx伺服器 詳解 1 找到專案中的偽靜態檔案 vim開啟檔案,將內容複製出來 下面這個是本人的檔案 2 下面這個是自動轉化的 3 將轉化...

頁面靜態化 偽靜態

1 先提出乙個問題 假設我的網域名稱為 www.servername.com,能否實現www.servername.com aaa bbb.html實際上是訪問www.servername.com ccc ddd.php?問題分析 首先,www.servername.com實際上已經確定了ip和埠號...