php頁面靜態化

來源:互聯網
上載者:User
目前CMS系統多採用了頁面靜態化,這樣做的好處是:一是能減輕其伺服器的負擔,二是因為產生了HTML靜態頁面,所以其網站被搜尋引擎搜尋到的機率更大一些,也就是為了網站推廣。

1、頁面靜態化分類

真靜態:通過程式產生靜態頁面檔案,當我們訪問的時候,就是直接存取的靜態頁面。
偽靜態:是動態網址看起來像靜態網址。換句話說就是,動態網頁通過重寫 URL 方法實現去掉動態網頁的參數,但在實際的網頁目錄中並沒有必要實現存在重寫的頁面。具體可以參考前面章節:http://blog.csdn.net/zhao1234567890123456/article/details/38569139

2、真靜態實現方法

[1]利用模版產生靜態檔案,通過自己編寫的檔案或者是其他架構,例如:Smarty可以實現網站靜態化。這裡提供一個通過一個簡單程式來理解利用模版產生靜態檔案。

模板檔案template.htm:

[html] view plain copy print ?

  1. %title%
  2. %title%

  3. %body%

            %title%                

%title%

%body%
php檔案:

[php] view plain copy print ?

  1. //Replace函數用於將從模版檔案中讀取的內容中的關鍵字替換成變數中的內容
  2. function Replace($row)
  3. {
  4. $title = "文章標題"; //定義用來替換的變數
  5. $body = "這裡是文章主體";
  6. $row = str_replace("%title%", $title, $row); //替換參數中的關鍵字
  7. $row = str_replace("%body%", $body, $row);
  8. return $row; //返回替換後的結果
  9. }
  10. $f_tem = fopen("template.htm","r"); //模版檔案指標
  11. $f_new = fopen("new.htm","w"); //產生的檔案指標
  12. //迴圈讀模數版檔案,每次讀取一行
  13. while(!feof($f_tem))
  14. {
  15. $row = fgets($f_tem);
  16. $row = Replace($row); //替換讀入內容中的關鍵字
  17. fwrite($f_new, $row); //將替換後的內容寫入產生的HTML檔案
  18. }
  19. fclose($f_new); //關閉檔案指標
  20. fclose($f_tem);
  21. ?>

//定義用來替換的變數     $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 ?

  1. ob_start();
  2. ?>
  3. 這個程式叫測試
  4. 這個是測試
  5. $out1 = ob_get_contents();
  6. ob_end_clean();
  7. $fp = fopen("ceshi.html","w");
  8. if(!$fp)
  9. {
  10. echo 檔案不存在";
  11. exit();
  12. }
  13. else
  14. {
  15. fwrite($fp,$out1);
  16. fclose($fp);
  17. echo "Success";
  18. }
  19. ?>
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.