乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

       quasiceo 2014-05-02
      看了一些開源系統(tǒng)的,簡單的總結(jié)一下php的模板及靜態(tài)原理。
      先貼代碼,再做解釋。
      index.php
      Php代碼 復制代碼 收藏代碼
      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標簽,用來顯示變量的值   
      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代碼 復制代碼 收藏代碼
      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、功能分解,上面的例子,兩個頁面就演示了整個流程,為了便于在項目中使用,我們需要對上面頁面中涉及到的功能進行拆分,分別放在不同的函數(shù)里實現(xiàn)。比如,調(diào)用模板不可能只是一句require就搞定。讀緩存也應該進行細化,file_get_contents一句話是不行的。
      3、模板拆分,應該充分發(fā)揮模板重用,不能說,一個php頁面對應一個模板,而應該是按功能分。比如,模板A是用來顯示新聞列表的,那這個模板,可以在任何顯示新聞列表的地方調(diào)用。而不應該定義為:模板A是news.php對應的的模板,這樣的話,比如:news.php里需要顯示一個新聞列表,index.php里用模板B,如果index.php里也需要顯示新聞列表,這兩塊模板就重復了。

      大概想到這些。歡迎拍磚

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多