php頁面靜態化技術;學習筆記

grootzhang發表於2016-04-12
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>

</head>
<body>
        <p style="color: #ff9000;">%demo%</p>
</body>
</html>

這是需要替換的頁面 

 

PHP頁面的靜態化很有必要,尤其是在CMS系統中,一些內容一旦生成,基本上不會有變化,這時如果用html將頁面靜態化,無疑會減少服務其解析PHP頁面的負擔。以下是看書學來的PHP靜態化技術,記錄之以備不時之需。

無論是利用框架還是簡單的指令碼,原理基本一致:就是利用PHP進行檔案操作,替換html模板中的動態元素,不僅能提高使用者的訪問速度還能讓php與html分離,使程式碼更具有維護性。

 

用到的檔案操作函式:

fopen()          ——————–       開啟一個檔案  函式有兩個引數: 1.開啟檔案的路徑和檔名  2.開啟檔案所用的模式(字串形式)   這裡用到了r 和 w r代表只讀 w代表只寫

feof()             ——————–       讀取檔案直到檔案末尾    這個函式會在讀取到檔案的末尾返回true  那麼就可以用while知道何時讀完檔案;函式有一個引數,1.開啟的檔案指標

fwiter()         ——————–         寫入檔案內容,函式有三個引數:1.寫入的檔名稱  2.寫入的內容  3.(可選) 寫入的最大字元數 

fclose()   ————————  關閉檔案;一般做完所有操作後必須關閉檔案;

 

注意事項: 需要注意檔案的路徑;以及讀取檔案所需要的許可權  ;

 

php程式碼:

<?php
header("Content-type:text/html,charset=utf-8");
/******php靜態化*******/
    class textHtml{
        public function fwriteHtml($r){
            /*php頁面靜態化技術
             *$r [array];
             *route=>生成檔名稱及路徑
             *html=>需要讀取的靜態資源
             *stsyem=>要替換的標籤
             *content=>標籤替換的內容
             * */
            
            $cfill = fopen($r["html"],"r");//讀取的檔名
            $cfillnew = fopen($r["route"],"w");
            while(!feof($cfill)){
                $row = fgets($cfill);

$res = str_replace($r["stsyem"],$r["content"],$row); //替換內容
         fwrite($cfillnew,$res);//寫入html檔案 } /*關閉檔案*/ fclose($cfill); fclose($cfillnew); } } $f = new textHtml; $fillname = microtime().".html"; $content = "這是一個頁面靜態化技術"; $r["route"] = $fillname; $r["html"] = "index.html"; $r["stsyem"] = "%demo%"; $r["content"] = $content; $f->fwriteHtml($r); ?>

最後得到的結果:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>全國城市三級聯動</title>

</head>
<body>
        <p style="color: #ff9000;">這是一個頁面靜態化技術</p>
</body>
</html>

利用php靜態化技術可以更好的實現網頁功能 ; 在建立文章或者一些不經常改變內容中都可以用到;

 

========================================================
轉載請註明出處。


相關文章