程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php簡單的自定義模板類

php簡單的自定義模板類

編輯:關於PHP編程

<?php 
    class MyTpl { 
        private $template_dir; 
        private $compile_dir; 
        private $tpl_vars=array(); 
 
        public function __construct($template_dir="./templates", $compile_dir="./templates_c"){ 
            $this->template_dir=rtrim($template_dir,"/").'/'; 
            $this->compile_dir=rtrim($compile_dir, "/").'/'; 
        } 
 
        public function assign($tpl_var, $value=null){ 
            if($tpl_var!="") 
                $this->tpl_vars[$tpl_var]=$value; 
        } 
 
        public function display($fileName){ 
            $tplFile=$this->template_dir.$fileName; 
 
            if(!file_exists($tplFile)){ 
                return false; 
            } 
 
            $comFileName=$this->compile_dir."com_".$fileName.".php"; 
 
            if(!file_exists($comFileName) || filemtime($comFileName) < filemtime($tplFile)){ 
                $repContent=$this->tpl_replace(file_get_contents($tplFile)); 
 
                file_put_contents($comFileName, $repContent);    
            } 
 
            include $comFileName; 
             
        } 
 
        private function tpl_replace($content){ 
                $pattern=array( 
                        '/\<\{\s*\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\}\>/i' 
                    ); 
 
                $replacement=array( 
                    '<?php echo $this->tpl_vars["${1}"]; ?>' 
                    ); 
             
                $repContent=preg_replace($pattern, $replacement, $content); 
 
                return $repContent; 
        } 
 
    } 
?> 
摘自:enough_br的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved