龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

miniSmarty 简易Smarty

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
简易的smarty 对新手理解smarty有帮助 源于itcast韩顺平老师smarty第2、3讲
简易的smarty 对新手理解smarty有帮助  源于itcast韩顺平老师smarty第2、3讲
<?php

	class MyMiniSmarty{
	
		public $template_dir = "./templates";
		public $complie_dir = "./templates_c";
		public $tpl_vars = array();
				
		public  function assign($tpl_var,$val = NULL){
			if(!empty($tpl_var)){
				$this->tpl_vars[$tpl_var] = $val;
			}
		}
		
		public  function display($tpl_file){
			$tpl_file_path = $this->template_dir.$tpl_file;
			$complie_file_path = $this->complie_dir."com_".$tpl_file.".php";
			if (file_exists($tpl_file_path) || filemtime($tpl_file_path) < filemtime($complie_file_path)) {
				$tpl_file_content = file_get_contents($tpl_file_path);
				
				$pattern = array(
					'/\{\s*\$([a-zA-Z0-0_]*)\s*\}/i'
				);
				
				$replace = array(
					'<?php echo $this->tpl_vars["${1}"] ?>'
				);
				
				$new_content = preg_replace($pattern, $replace, $tpl_file_content);
				
				try {
					file_put_contents($complie_file_path, $new_content);
				} catch (Exception $e) {
					echo $e->getMessage();
				}
				include $complie_file_path;
				
			}else {
				return FALSE;
			}		
		}
	
	}
?>
精彩图集

赞助商链接