温馨提醒

亲爱的游客,你的浏览器太旧啦.都啥年代了.为了你的安全,为了你的体验,为更好的浏览本页, 赶紧更新一把吧.....本博客不支持ie8以下浏览器,如果你使用的是ie浏览器,请您更新到ie8或以上版本.

推荐使用谷歌浏览器(chrome)或火狐浏览器(Firefox),点击下方按键进行安装

码农部落

  ——好记性,不如烂博客!

Smarty模板原理(核心代码)

intro.php文件(控制器)

assign("title","我的第一个文件title");
	$mysmarty->assign("content","我的第一个文件内容");
	$mysmarty->display("intro.tpl");

intro.tpl模板文件




{%content}


MyMiniSmarty.class.php 这是smarty的核心代码

tp1_vars[$tp1_var]=$val;
			}
		}
		//这里我们编写一个display
		function display($tp1_file){
			//读取这个模板文件->替换可以运行的php(编译后文件)
			$tp1_file_path=$this->template_dir.$tp1_file;
			$complie_file_path=$this->complie_dir."com_".$tp1_file.".php";
			//判断文件是否存在
			if (!file_exists($tp1_file_path)) {
				return false;
			}
			
			
			//不需要每次编译模板文件
			if (!file_exists($complie_file_path) || filemtime($tp1_file_path) > filemtime($complie_file_path)){
				$tp1_file_con=file_get_contents($tp1_file_path);
				
				$pattern=array(
						'/\{\s*\%([a-zA-Z_][a-zA-Z0-9_]*)\s*\}/i'
				);
				$replacement=array(
						'tp1_vars["${1}"] ?>'
				);
				
				$new_con=preg_replace($pattern, $replacement, $tp1_file_con);
				file_put_contents($complie_file_path,$new_con);
			}
			include  $complie_file_path;
			
		}
	}
码农部落
声明:本博客文章多数为博主笔记,绝无版权问题,欢迎转载(能注明出处更好),有任何问题,请在下方评论框留言.

目前有2条评论

努力加载中~
  1. 1楼
    象牙塔2013-04-25 回复

    一直很佩服码农这类人,生猛!

    • admin2013-04-25 回复

      我是个菜鸟。。。望高手指教啊

发表评论

电子邮件地址不会被公开。 必填项已用*标注