自己写的一个模板解析函数~~~
时间:2008-04-25
来源:互联网
同时支持两种分隔符,而更重要的是,同时支持两种分隔符,仅仅增加了一条str_replace语句,对解析模板的性能影响很小
1,<{ }> 用于需要在预览时可查看到的内容的显示,原分隔符{}放弃,因为可能会跟页面中的一些东西冲突,尽管这种可能性很小
2,<!--{}--> 用于那些会影响页面预览效果的标签,如循环,判断等,当然仅仅是一个简单的变量输出时,也可以这样做,随便你了
你不需要做任何的配置或设置,就可以随意使用这两种分隔符(可同时使用),大幅度提高预览效果,这将会非常的方便。
注意:
若希望获得更高性能,可将parse_template函数放入一个独立的文件,在template中调用parse_template函数之前将这个文件包含进来,当然需要放在那个判断中。
这样可以极大的减小模板引擎的体积,不解析模板时,也就是那么1,2百个字节而已,性能,那是不用说了,体验模板引擎带来的好处的同时,仅仅需要付出一点点微不足道的性能损失
[ 本帖最后由 fhjr999 于 2008-5-20 20:26 编辑 ]

2008-5-6 22:02, 下载次数: 65
作者: fhjr999 发布时间: 2008-04-24
作者: PHPChina 发布时间: 2008-04-24
作者: luzhou 发布时间: 2008-04-28
连基本php和html混合代码都不一定能写的好的我们
您让我们顶您写的这个模板函数不是强人所难吗?呵呵
作者: fhjr999 发布时间: 2008-04-29
作者: wangbaoming 发布时间: 2008-04-30
我使用的编译模式跟现在完全不同,后来参考了一下DZ的,发现这样做确实非常方便,非常灵活,于是就学习了下,也算练习下正则了。
本来正则仅仅是刚入门水平,写完这个函数,一般的都已经可以轻松写出来了。
可以说,写了这个小东西,我学会了很多,也希望这个东西,可以方便到大家。
作者: lyhiving 发布时间: 2008-04-30
作者: fhjr999 发布时间: 2008-04-30
我在几个网页测试了下,未发现任何显示效果的变化了。
缓存的优化效果还是不错的,大概可以减小缓存体积的20%,不仅减小了体积,而且还将相邻标签编译后产生的?>和<?去掉了,可以减小PHP编译器的开启闭合,对提高模板缓存的执行效率,应该还是很有帮助的。
已经下载的朋友,请重新下载。
下面是经过了优化的缓存文件:
代码:
<? true===$inTemplate || exit('非法访问!'); ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0017)http://localhost/ --> <HTML><HEAD><TITLE>徐威重科内部网</TITLE> <META http-equiv=Content-Language content=zh-cn> <META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK href="徐威重科内部网.files/css.css" type=text/css rel=stylesheet> <SCRIPT language=javascript src="徐威重科内部网.files/jquery.js"></SCRIPT> <SCRIPT language=javascript> function login() { var user = document.getElementById("username").value; var pwd = document.getElementById("password").value; var data = "user="+user+"&pwd="+pwd; $.ajax({ url:"User/Login_in.php", type:"post", dataType:"html", data:data, success:function(msg){ if ("OK" == msg) { location.reload(); } else { alert(msg); } }, error:function(){ alert("产生不可预料的错误,请拨打电话 6359 通知网络管理员!"); } }); } function out() { $.ajax({ url:"User/Login_out.php", type:"post", dataType:"html", success:function(msg){ if ("OK" == msg) { location.reload(); } else { alert("退出失败,请拨打电话 6359 通知网络管理员!"); } } }); } function upload() { $.ajax({ url:"Files/Upload_power.php?ajax_power=1", dataType:"html", success:function(msg){ if ("OK" == msg) { location.href = "Index.php?m=Files-Upload"; } else { alert(msg); } } }); } function file_upload() { var categories = document.getElementById("categories").value; var filename = document.getElementById("filename").value; var filepath = document.getElementById("filepath").value; var ms = ""; if ("" == categories) { ms = ms + "您尚未选择文件分类!\n"; } if ("" == filename) { ms = ms + "您尚未填写文件名称!\n"; } if ("" == filepath) { ms = ms + "您尚未选择需要上传的文件!"; } if ("" != ms) { alert(ms); } else { document.getElementById("fileupload").submit(); } } function last_page() { history.go(-1); } </SCRIPT> <META content="MSHTML 6.00.2900.3314" name=GENERATOR> <STYLE type=text/css>.STYLE1 { COLOR: #ffffff } </STYLE> </HEAD> <BODY class=bg1 text=#000000 bgColor=#ffffff leftMargin=0 topMargin=1> <DIV align=center> <TABLE id=__01 height=94 cellSpacing=0 cellPadding=0 width=981 border=0> <TBODY> <TR> <TD><IMG height=94 alt="" src="徐威重科内部网.files/top_06.gif" width=452></TD> <TD><IMG height=94 alt="" src="徐威重科内部网.files/top_02.gif" width=205></TD> <TD vAlign=bottom><IMG height=94 alt="" src="徐威重科内部网.files/top_03.gif" width=324[ 本帖最后由 fhjr999 于 2008-5-3 23:56 编辑 ]
作者: redmoon_j 发布时间: 2008-05-03
作者: fhjr999 发布时间: 2008-05-06
虽然我现在还不太精通php
但是我一定会努力成为一个彪悍的phper!!
作者: fhjr999 发布时间: 2008-05-07
最近好像在论坛里看到有人在研究所见即所得的模板引擎,什么原理呢??
难道是把每个标签都注释掉???
但是这样的话,就不能直观的看到在模板的相应位置,使用的到底是什么标签了啊。
[ 本帖最后由 fhjr999 于 2008-5-10 20:37 编辑 ]
作者: piaohh 发布时间: 2008-05-10
引用:
原帖由 fhjr999 于 2008-4-28 20:45 发表为啥我写的东西愣是没人顶呢???难道我写的真的很烂???
对于新手,不明白你说的是什么.都没有做过几个项目,对模板的意义没有理性认识
对于熟手,因php本身就具有模板特性,自己随意写代码就行了,不需要模板活照样干
对于高手,写个php的模板很容易,你翻翻以前的帖子,自己写模板的很多的.太容易了.
对于项目,有已经成型的,普遍使用的模板,这些都已经习惯了,都差不多,没有必要换.
对于未来,前台javascript模板正在升温,对后台模板已经不感兴趣了.
作者: fhjr999 发布时间: 2008-05-10
如果不想损失太大的网页传输时间,就只能在一个页面中实现尽量多的功能,这肯定会让页面变的很复杂,调试起来会很麻烦。
而且EXT中最常用的那部分功能,通过自己编写代码,实现起来也不算难。
实在是很难取舍。
作者: achun.shx 发布时间: 2008-05-10
作者: fhjr999 发布时间: 2008-05-20
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28