小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

php網(wǎng)頁靜態(tài)化及模板原理演示

 quasiceo 2014-05-02
看了一些開源系統(tǒng)的,簡單的總結(jié)一下php的模板及靜態(tài)原理。
先貼代碼,再做解釋。
index.php
Php代碼 復(fù)制代碼 收藏代碼
  1. <?php   
  2. //如果已存在靜態(tài)頁面,直接讀取并顯示   
  3. if(file_exists('index.html'))   
  4. {   
  5.     echo file_get_contents('index.html');   
  6. }   
  7. else  
  8. {   
  9.     //這里把需要的變量都附好值   
  10.     $var = "Hello,World.";   
  11.     //開啟輸出緩存   
  12.     ob_start();   
  13.     //這里調(diào)用模板,模板里嵌入一些PHP標(biāo)簽,用來顯示變量的值   
  14.     require_once('template.php');   
  15.     //這里得到輸出緩存,也就是調(diào)用模板后,將來要顯示到頁面上的內(nèi)容   
  16.     $out = ob_get_contents();   
  17.     //把要顯示的內(nèi)容保存成一個文件   
  18.     file_put_contents('index.html',$out);   
  19.     //輸出   
  20.     ob_end_flush();   
  21. }  

template.php
Php代碼 復(fù)制代碼 收藏代碼
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2. <html xmlns="http://www./1999/xhtml">    
  3. <head>    
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    
  5. <title>HTML</title>    
  6. </head>    
  7. <body>    
  8. <hr/>   
  9. <p>   
  10. <?php echo $var;?>   
  11. </p>   
  12. <hr/>   
  13. </body>   
  14. </html>  

代碼解釋見注釋。
把上面的兩個代碼放在同一個目錄下,然后訪問看看,目錄下面是不是多了一個HTML文件。這就是產(chǎn)生的靜態(tài)頁面,你可以把這個文件打開看看并和template.php比較一下。

總體原理很簡單,看完注釋就能明白個大概,不過這只是個基本的演示。如果是真正要使用到系統(tǒng)中,還需要完善以下問題。
1、緩存的靜態(tài)文件的過期及更新問題,上面的例子里,只要有緩存存在,就直接去讀。就算變量$var的值改變了,也不會更新內(nèi)容。所以實際使用時,在變量或模板改變時,更新緩存的靜態(tài)文件,或者通過一些方式設(shè)置緩存有效期,過期時重新生成。
2、功能分解,上面的例子,兩個頁面就演示了整個流程,為了便于在項目中使用,我們需要對上面頁面中涉及到的功能進(jìn)行拆分,分別放在不同的函數(shù)里實現(xiàn)。比如,調(diào)用模板不可能只是一句require就搞定。讀緩存也應(yīng)該進(jìn)行細(xì)化,file_get_contents一句話是不行的。
3、模板拆分,應(yīng)該充分發(fā)揮模板重用,不能說,一個php頁面對應(yīng)一個模板,而應(yīng)該是按功能分。比如,模板A是用來顯示新聞列表的,那這個模板,可以在任何顯示新聞列表的地方調(diào)用。而不應(yīng)該定義為:模板A是news.php對應(yīng)的的模板,這樣的話,比如:news.php里需要顯示一個新聞列表,index.php里用模板B,如果index.php里也需要顯示新聞列表,這兩塊模板就重復(fù)了。

大概想到這些。歡迎拍磚

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多