
哈哈,没你想的复杂的。其实原理很简单,把{}里面的或者配置好的界边符里面的代码,用正则的方式给替换成了PHP代码,从而生成了个临时文件,这个文件是混合的PHP文件,HTML,PHP代码都在里面。然后输出出来。这是目前MVC通用方式。
/解析和获取模板内容 用于输出
@access public
@param string $templateFile 模板文件名
@param string $content 模板输出内容
@param string $prefix 模板缓存前缀
@return string
/
public function fetch($templateFile='',$content='',$prefix='') {
if(empty($content)) {
$templateFile = $this->parseTemplate($templateFile);
// 模板文件不存在直接返回
if(!is_file($templateFile)) E(L('_TEMPLATE_NOT_EXIST_')':'$templateFile);
}else{
defined('THEME_PATH') or define('THEME_PATH', $this->getThemePath());
}
// 页面缓存
ob_start();
ob_implicit_flush(0);
if('php' == strtolower(C('TMPL_ENGINE_TYPE'))) { // 使用PHP原生模板
$_content = $content;
// 模板阵列变量分解成为独立变量
extract($this->tVar, EXTR_OVERWRITE);
// 直接载入PHP模板
empty($_content)include $templateFile:eval('>'$_content);
}else{
// 视图解析标签
$params = array('var'=>$this->tVar,'file'=>$templateFile,'content'=>$content,'prefix'=>$prefix);
Hook::listen('view_parse',$params);
}
// 获取并清空缓存
$content = ob_get_clean();
// 内容过滤标签
Hook::listen('view_filter',$content);
// 输出模板文件
return $content;
}
以上就是关于工程建筑模板介绍全部的内容,包括:工程建筑模板介绍、itext如何解析模板表格的某一行的位置、java如何根据word模板生成word文档等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)