php代码
<?php class template{ private $assign = array(); public $tplfile_pre; public $tplfile_path_dir = 'template'; //模板路径 public $tplfile_cache_dir = 'cache'; //缓存路径 public $tplfile_cache_open = TRUE; //是否开启缓存 public $tplfile_cache_time = 300; //设置缓存时间 public $tplstring_left = '{-'; //模板中左标签 public $tplstring_right = '-}'; //模板中右标签 function template($tplpre) { if(empty($tplpre)) { exit('Lost Parameter'); } $this->tplfile_pre = md5($tplpre).'.'; } public function assign($tplvar,$value){ $this->assign[$tplvar]=$value; } public function display($tpl) { if($this->tplfile_cache_open) { if(file_exists($this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php')) { $tmpfiletime = fileatime($this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php'); if((time() - $tmpfiletime) >$this->tplfile_cache_time) { unlink($this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php'); include $this->createTemp($tpl); }else{ include $this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php'; } }else{ include $this->createTemp($tpl); } }else{ include $this->createTemp($tpl); } } private function createTemp($tpl) { $content = file_get_contents($this->tplfile_path_dir.'/'.$tpl); $data = preg_replace('/'.$this->tplstring_left.'if\(((.*)+)\)'.$this->tplstring_right.'/',"<?php if(\\1) { ?>",$content); $data = preg_replace('/'.$this->tplstring_left.'else'.$this->tplstring_right.'/','<?php }else{ ?>',$data); $data = preg_replace('/'.$this->tplstring_left.'\/if'.$this->tplstring_right.'/','<?php } ?>',$data); $data = preg_replace('/'.$this->tplstring_left.'/','<?php echo ',preg_replace('/'.$this->tplstring_right.'/',' ?>',$data)); foreach($this->assign as $k=>$v) { if(!is_numeric($v)) { $data = preg_replace('/\$'.$k.'/','\''.$v.'\';',$data); } $data = preg_replace('/\$'.$k.'/',$v,$data); } if($data) { file_put_contents($this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php',$data); return $this->tplfile_cache_dir.'/'.$this->tplfile_pre.$tpl.'.php'; } } public function version() { return 'webtmp 1.0'; } } ?>