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

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

    • 分享

      PHP模板引擎原理

       quasiceo 2014-05-02

      PHP模板引擎原理  

      2011-11-28 16:31:05|  分類: PHP資料 |舉報(bào) |字號(hào) 訂閱

      模板引擎實(shí)現(xiàn)的原理

      訪問(wèn)php文件, php文件會(huì)去加載模板引擎,通過(guò)模板引擎去加載模板然后替換模板里面的變量 然后生成一個(gè)編譯文件 

      最后將該編譯文件導(dǎo)入 訪問(wèn)的php文件中輸出     第二次訪問(wèn)的時(shí)候 如果 緩存文件存在或者沒(méi)有被改動(dòng)則直接 導(dǎo)入緩存文件 輸出

      否則重新編譯

      自定義的一個(gè)模板引擎 mytpl.class.php

      <?php

      class mytpl{

      //指定模板目錄

      private $template_dir;

      //編譯后的目錄

      private $compile_dir;

      //讀取模板中所有變量的數(shù)組

      private $arr_var=array();

      //構(gòu)造方法

      public function __construct($template_dir="./templates",$compile_dir="./templates_c")

      {

      $this->template_dir=rtrim($template_dir,"/")."/";

      $this->compile_dir=rtrim($compile_dir,"/")."/";

      }

      //模板中變量分配調(diào)用的方法

      public function assign($tpl_var,$value=null){

      $this->arr_var[$tpl_var]=$value;

      }

      //調(diào)用模板顯示

      public function display($fileName){

      $tplFile=$this->template_dir.$fileName;

      if(!file_exists($tplFile)){

      return false;

      }

      //定義編譯合成的文件  加了前綴 和路徑 和后綴名.php

      $comFileName=$this->compile_dir."com_".$fileName.".php";

      if(!file_exists($comFileName) || filemtime($comFileName)< filemtime($tplFile)){//如果緩存文件不存在則 編譯  或者文件修改了也編譯

           $repContent=$this->tmp_replace(file_get_contents($tplFile));//得到模板文件 并替換占位符 并得到替換后的文件

          file_put_contents($comFileName,$repContent);//將替換后的文件寫(xiě)入定義的緩存文件中

      }

       

      //包含編譯后的文件

      include $comFileName;

      }

      //替換模板中的占位符

      private function tmp_replace($content){

      $pattern=array(

      '/\<\!--\s*\$([a-zA-Z]*)\s*--\>/i'

      );

      $replacement=array(

      '<?php echo $this->arr_var["${1}"]; ?>'

      );

      $repContent=preg_replace($pattern,$replacement,$content);

      return $repContent;

      }

      }

      //使用該模板引擎

      <?php

      //導(dǎo)入模板引擎類

      include"mytpl.class.php";

      $title="this is title";

      $content="this is content";

      $tpl=new mytpl();

      //分配變量

      $tpl->assign("title",$title);

      $tpl->assign("content",$content);

      //指定處理的模板

      $tpl->display("tpl.html");

      ?>

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

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多