返回首页
当前位置: 主页 > 开发教程 > PHP >

浅析Discuz,uchome中模板实现原理

时间:2009-02-12 01:34来源:本站原创 作者:永远的菜鸟 点击:
Dizcuz模板和uc home 中的模板是一样的,由 parse_template函数实现(比起smarty可真是超轻量级了). 解析过程并不复杂,主要是读取模板文件(.htm),用规则表达式替换标记为PHP标准语法,最终生成
  

Dizcuz模板和uc home 中的模板是一样的,由 parse_template函数实现(比起smarty可真是超轻量级了).

解析过程并不复杂,主要是读取模板文件(.htm),用规则表达式替换标记为PHP标准语法,最终生成一个标准的PHP文件,保存到缓存目录。而在主文件(.php)中获取数据,最后有个调用 include(template("*.htm"))

template 调 用 parse_template 将模板缓存为 .php文件,返回文件名给 include()函数,include可以动态包含文件,所以得到了完整的.php. 如果缓存中已经有该文件,直接从缓存读取,所以修改了模板,就要 清除缓存,重新生成,否则,还会显示原来的。

Asp中的 include 不可以动态包含,所以通常是将模板文件解析成块,通过替换该块,实现的。当然有的模板比如kudzu Asp引擎,是将模板解析为节点树,每种节点都有相应的处理插件,从根节点开始执行,遍历节点树,最后生成静态内容,保存到文件后直接输出。

顶一下
(8)
80%
踩一下
(2)
20%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码: