發信人: goodboys (三葉草), 信區: php_asp_jsp
標 題: php生成靜態頁面解析
發信站: 兵馬俑bbs (fri may 20 16:27:16 2005), 本站(202.117.1.8)
最近好多同學都關心靜態頁面的生成問題
結合網上的一些文章,寫了點東西.
下面為目前**常使用的方法 如下:
靜態頁面的生成一般有這麼幾個思路
1。程式編寫過程中。不使用直接輸出的語句。而時將所有的輸出連線至輸出字串
,輸出完成後。再直接將輸出字串內容寫入檔案
2。編寫中按照正常的方式編寫。通過ob函式組捕獲輸出。然後將輸出寫入檔案
3。使用模板類時,用get/fetch一類的方法獲取輸出。並寫入檔案。
具體實現上又有這兩種方法
1。管理後台新增記錄時,直接生成目標html頁面,並且前台呼叫連線直接指向生成
的html頁面。這種方法程優點是程式效率最高。伺服器負荷輕,不過由於生成的是
純靜態頁面,一旦頁面樣式上有所改動就必須重新生成所有的內容頁。所以實際使
用中應用一般不是太多。更多的是使用js,ssi,xml/xsl等客戶端手段,生成的靜態
檔案中僅儲存資料,不涉及樣式,這樣能達到速度和維護性的平衡,不過相對前後
臺程式要複雜些(應用這種方法時,由於內容為純靜態,可以搭配單獨編譯的純靜
態的apache使用。。效率和資源占用上比包含動態內容支援的要更佳)
2。前台訪問鏈結指向php程式,php程式首先檢查是否存在相應的靜態檔案。如果靜
態檔案不存在。則生成並重定向至此檔案,否則直接重定向。這種方法實際使用中
一般和apache的url_rewrite功能一起使用。將php的檔案位址重為html的形式,有
利於搜尋引擎的檢索。這種方法在效率上略有損失,不過程式結構簡單,便於調整
,在訪問量不是很大時使用很合適。。
具體操作:
一,php指令碼與動態頁面。
php指令碼是一種伺服器端指令碼程式,可通過嵌入等方法與html檔案混合,也可以
類,函式封裝等形式,以模板的方式對使用者請求進行處理。無論以何種方式,它的
基本原理是這樣的。由客戶端提出請求,請求某一頁面 -----> web伺服器引入指
定相應指令碼進行處理 -----> 指令碼被載入伺服器 -----> 由伺服器指定的php解
析器對指令碼進行解析形成html語言形式 ----> 將解析後的html語句以包的方式傳
回給瀏覽器。由此不難看出,在頁面傳送到瀏覽器後,php就不存在了,已被轉化解
析為html語句。客戶請求為一動態檔案,事實上並沒有真正的檔案存在在那裡,是
php解析而成相對應的頁面,然後傳送回瀏覽器。這種頁面處理方式被稱為「動態頁
面」。
二,靜態頁面。
靜態頁面是指在伺服器端確實存在的僅含html以及js,css等客戶端執行指令碼的
頁面。它的處理方式是。由客戶端提出請求,請求某一頁面 ----> web伺服器確
認並載入某一頁面 ----> web伺服器將該頁面以包的形式傳遞歸瀏覽器。由這一
過程,我們對比一下動態頁面,即可方現。動態頁面需由web伺服器的php解析器進
行解析,而且通常還需連線資料庫,進行資料庫訪問操作,然後才能形成html語言
資訊包;而靜態頁面,無須解析,無須連線資料庫,直接傳送,可大大減輕伺服器
壓力,提高伺服器負載能力,大幅提供頁面開啟速度和**整體開啟速度。但其缺
點是,不能動態地對請求進行處理,伺服器上必須確實存在該檔案。
三,模板及模板解析。
模板即尚未填充內容html檔案。例如:
temp.html
code:
this is a file's templets
PHP生成靜態頁面
php生成靜態頁面 php生成靜態頁面的條件 使用ob start 方法開啟快取區也是生成靜態頁面的開始 使用ob get contect 方法獲取快取內容 使用ob clean 方法清空快取 ob start 開啟快取區 filename date ymdhis rand 1000,9999 ht...
PHP生成靜態頁面
看到很多朋友在各個地方發帖問php生成靜態文章系統的方法,以前曾做過這樣乙個系統,遂談些看法,以供各位參考。好了,我們先回顧一些基本的概念。一,php指令碼與動態頁面。php指令碼是一種伺服器端指令碼程式,可通過嵌入等方法與html檔案混合,也可以類,函式封裝等形式,以模板的方式對使用者請求進行處理...
PHP生成靜態頁面
看到很多朋友在各個地方發帖問php生成靜態文章系統的方法,以前曾做過這樣乙個系統,遂談些看法,以供各位參考。好了,我們先回顧一些基本的概念。一,php指令碼與動態頁面。php指令碼是一種伺服器端指令碼程式,可通過嵌入等方法與html檔案混合,也可以類,函式封裝等形式,以模板的方式對使用者請求進行處理...