目前CMS系統多採用了頁面靜態化,這樣做的好處是:一是能減輕其伺服器的負擔,二是因為產生了HTML靜態頁面,所以其網站被搜尋引擎搜尋到的機率更大一些,也就是為了網站推廣。
1、頁面靜態化分類
真靜態:通過程式產生靜態頁面檔案,當我們訪問的時候,就是直接存取的靜態頁面。
偽靜態:是動態網址看起來像靜態網址。換句話說就是,動態網頁通過重寫 URL 方法實現去掉動態網頁的參數,但在實際的網頁目錄中並沒有必要實現存在重寫的頁面。具體可以參考前面章節:http://blog.csdn.net/zhao1234567890123456/article/details/38569139
2、真靜態實現方法
[1]利用模版產生靜態檔案,通過自己編寫的檔案或者是其他架構,例如:Smarty可以實現網站靜態化。這裡提供一個通過一個簡單程式來理解利用模版產生靜態檔案。
模板檔案template.htm:
[html] view plain copy print ?
-
-
- %title%
-
-
-
%title%
-
-
%body%
-
-
%title% %title%
%body%
php檔案:
[php] view plain copy print ?
-
- //Replace函數用於將從模版檔案中讀取的內容中的關鍵字替換成變數中的內容
- function Replace($row)
- {
- $title = "文章標題"; //定義用來替換的變數
- $body = "這裡是文章主體";
- $row = str_replace("%title%", $title, $row); //替換參數中的關鍵字
- $row = str_replace("%body%", $body, $row);
- return $row; //返回替換後的結果
- }
-
- $f_tem = fopen("template.htm","r"); //模版檔案指標
- $f_new = fopen("new.htm","w"); //產生的檔案指標
- //迴圈讀模數版檔案,每次讀取一行
- while(!feof($f_tem))
- {
- $row = fgets($f_tem);
- $row = Replace($row); //替換讀入內容中的關鍵字
- fwrite($f_new, $row); //將替換後的內容寫入產生的HTML檔案
- }
- fclose($f_new); //關閉檔案指標
- fclose($f_tem);
- ?>
//定義用來替換的變數 $body = "這裡是文章主體"; $row = str_replace("%title%", $title, $row); //替換參數中的關鍵字 $row = str_replace("%body%", $body, $row); return $row; //返回替換後的結果 } $f_tem = fopen("template.htm","r"); //模版檔案指標 $f_new = fopen("new.htm","w"); //產生的檔案指標//迴圈讀模數版檔案,每次讀取一行 while(!feof($f_tem)) { $row = fgets($f_tem); $row = Replace($row); //替換讀入內容中的關鍵字 fwrite($f_new, $row); //將替換後的內容寫入產生的HTML檔案 } fclose($f_new); //關閉檔案指標fclose($f_tem); ?> [2]通過php程式寫靜態檔案,這裡提供一個簡單案例
[php] view plain copy print ?
-
- ob_start();
- ?>
-
-
- 這個程式叫測試
-
-
- 這個是測試
-
-
-
- $out1 = ob_get_contents();
- ob_end_clean();
- $fp = fopen("ceshi.html","w");
- if(!$fp)
- {
- echo 檔案不存在";
- exit();
- }
- else
- {
- fwrite($fp,$out1);
- fclose($fp);
- echo "Success";
- }
- ?>