secwijoy 2007-5-18 21:00
IT人都是这么孤独.....一个兄弟的心灵独白...
逆雪寒模板(没钱爱的孩子)
今天写了一天就写那么点东西.哪个累.基本调试都OK了.写这个模板引擎是为了我准备写 一个东西做准备的
各路好手,帮我看下.我写的这个模板引擎还有那些地方可以改进或是那里有问题.帮我指出.谢谢.我也在开发中不短增加新功能不短调试BUG
:$ :$ .前几天心情十分不好.现在重新振作写了这个东西.哎.女人:'(
版权所有呀...不过随便了.这个模板的速度应该是很快的.因为我尽量去掉了不必要的功能.而且我没使用时间更新或是md_file 更新,因为感觉没必要和浪费运行时间
因为模板程序都生成了.就很少动了.除非修改了模板.
不过我也加了个 更新的东西.使用方法是
include template ('header',1); 1为更新 .默认是不更新
模板机理实现函数:
PHP代码:
[color=#000000]
[font=NSimsun][color=#ff8000]/**
逆雪寒版权所有!没钱爱没人爱更没女人爱.
**/
[/color][color=#007700]function [/color][color=#0000bb]pase_template[/color][color=#007700]([/color][color=#0000bb]$file[/color][color=#007700],[/color][color=#0000bb]$clrcache[/color][/font][font=NSimsun][color=#007700]) {
[/color][color=#0000bb]$tplwhere [/color][color=#007700]= [/color][color=#dd0000]"./template/default/$file.htm"[/color][/font][font=NSimsun][color=#007700];
[/color][color=#0000bb]$tplcachephp [/color][color=#007700]= [/color][color=#dd0000]"./yhmcache/template/$file.php"[/color][/font][font=NSimsun][color=#007700];
if([/color][color=#0000bb]file_exists[/color][color=#007700]([/color][color=#0000bb]$tplcachephp[/color][color=#007700]) && [/color][color=#0000bb]$clrcache[/color][color=#007700]==[/color][color=#0000bb]0[/color][/font][font=NSimsun][color=#007700]) {
return [/color][color=#0000bb]$tplcachephp[/color][/font][font=NSimsun][color=#007700];
}
if(!@[/color][color=#0000bb]$fp[/color][color=#007700]=[/color][color=#0000bb]fopen[/color][color=#007700]([/color][color=#0000bb]$tplwhere[/color][color=#007700],[/color][color=#dd0000]'rb'[/color][/font][font=NSimsun][color=#007700])) {
exit([/color][color=#dd0000]"no open $tplwhere"[/color][/font][font=NSimsun][color=#007700]);
}
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]fread[/color][color=#007700]([/color][color=#0000bb]$fp[/color][color=#007700],[/color][color=#0000bb]filesize[/color][color=#007700]([/color][color=#0000bb]$tplwhere[/color][/font][font=NSimsun][color=#007700]));
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/\{(\\$\w+)\}/s"[/color][color=#007700],[/color][color=#dd0000]"<?=\\1?>"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#dd0000]"<? if(!defined('IN_yhm')){exit('no_access_yhm');}?>\n$template"[/color][/font][font=NSimsun][color=#007700];
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/template\s+(\w+)/i"[/color][color=#007700],[/color][color=#dd0000]"<? include template('\\1')?>"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/<\{--if(.+)--\}>\s*/i"[/color][color=#007700],[/color][color=#dd0000]"<? if \\1 {?>\n"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/<\{--else--\}>\s*/i"[/color][color=#007700],[/color][color=#dd0000]"<? }else{ ?>\n"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/<\{--elseif(.+)--\}>\s*/i"[/color][color=#007700],[/color][color=#dd0000]"<? }elseif\\1{ ?>\n"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/(<\{--endif--\}>|<\{--endloop--\}>)\s*/i"[/color][color=#007700],[/color][color=#dd0000]"<? }?>\n"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$template [/color][color=#007700]= [/color][color=#0000bb]preg_replace[/color][color=#007700]([/color][color=#dd0000]"/<\{--loop\s*(\S+)\s*(\S+)--\}>/is"[/color][color=#007700],[/color][color=#dd0000]"<? foreach (\\1 as \\2){ ?>"[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]fclose[/color][color=#007700]([/color][color=#0000bb]$fp[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$fp[/color][color=#007700]=[/color][color=#0000bb]fopen[/color][color=#007700]([/color][color=#0000bb]$tplcachephp[/color][color=#007700],[/color][color=#dd0000]'wb'[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]flock[/color][color=#007700]([/color][color=#0000bb]$fp[/color][color=#007700],[/color][color=#0000bb]2[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]fwrite[/color][color=#007700]([/color][color=#0000bb]$fp[/color][color=#007700],[/color][color=#0000bb]$template[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]fclose[/color][color=#007700]([/color][color=#0000bb]$fp[/color][/font][font=NSimsun][color=#007700]);
return [/color][color=#0000bb]$tplcachephp[/color][/font][font=NSimsun][color=#007700];
} [/color]
[/font][/color]
模板引用函数
[url=http://www.phpchina.com/bbs/thread-25698-1-1.html###][color=#0000ff][Copy to clipboard][/color][/url] [url=http://www.phpchina.com/bbs/thread-25698-1-1.html###][color=#0000ff][ - ][/color][/url]
PHP代码:
[color=#000000]
[font=NSimsun][color=#007700]<?
function [/color][color=#0000bb]template[/color][color=#007700]([/color][color=#0000bb]$file[/color][color=#007700],[/color][color=#0000bb]$clrcache[/color][color=#007700]=[/color][color=#0000bb]0[/color][/font][font=NSimsun][color=#007700]) {
return [/color][color=#0000bb]pase_template[/color][color=#007700]([/color][color=#0000bb]$file[/color][color=#007700],[/color][color=#0000bb]$clrcache[/color][/font][font=NSimsun][color=#007700]);
}
[/color][color=#0000bb]?>[/color] [/font][/color]
全局变量,函数文件.加入了防远程调用:主要怕人家不知道在服务器开了远程include.那真是多少服务器都不够死:lol
PHP代码:
[color=#000000]
[font=NSimsun][color=#007700]<?
[/color][color=#0000bb]define[/color][color=#007700]([/color][color=#dd0000]'IN_yhm'[/color][color=#007700],[/color][color=#dd0000]'yehuiming'[/color][/font][font=NSimsun][color=#007700]);
require_once [/color][color=#dd0000]'template.fun.php'[/color][/font][font=NSimsun][color=#007700];
require_once [/color][color=#dd0000]'global.fun.php'[/color][/font][font=NSimsun][color=#007700];
[/color][color=#0000bb]?>[/color] [/font][/color]
模板制作:
PHP代码:
[color=#000000]
[font=NSimsun][color=#007700]<![/color][color=#0000bb]DOCTYPE HTML [/color][color=#007700]PUBLIC [/color][color=#dd0000]"-//W3C//DTD HTML 4.0 Transitional//EN"[/color][/font][font=NSimsun][color=#007700]>
<[/color][color=#0000bb]html[/color][/font][font=NSimsun][color=#007700]>
<[/color][color=#0000bb]head[/color][/font][font=NSimsun][color=#007700]>
<[/color][color=#0000bb]meta http[/color][color=#007700]-[/color][color=#0000bb]equiv[/color][color=#007700]=[/color][color=#dd0000]"Content-Type" [/color][color=#0000bb]content[/color][color=#007700]=[/color][color=#dd0000]"text/html; charset=$charset"[/color][/font][color=#007700][font=NSimsun]>
[/font][/color][font=NSimsun][color=#ff8000]/*
模板变量定义
*/
[/color][color=#007700]<[/color][color=#0000bb]title[/color][color=#007700]>{[/color][color=#0000bb]$title[/color][color=#007700]}</[/color][color=#0000bb]title[/color][/font][color=#007700][font=NSimsun]>
[/font][/color][color=#ff8000][font=NSimsun]/*
模板引用其他模板文件
*/
[/font][/color][color=#0000bb][font=NSimsun]template header
[/font][/color][font=NSimsun][color=#ff8000]/*
数组循环(支持二维循环)
*/
[/color][color=#007700]<{--[/color][color=#0000bb]loop $pm $ww[/color][/font][font=NSimsun][color=#007700]--}>
{[/color][color=#0000bb]$ww[/color][/font][font=NSimsun][color=#007700]}
<{--[/color][color=#0000bb]endloop[/color][/font][color=#007700][font=NSimsun]--}>
[/font][/color][font=NSimsun][color=#ff8000]/*
多重判断
*/
[/color][color=#007700]<{--if([/color][color=#0000bb]0[/color][/font][color=#007700][font=NSimsun])--}>
[/font][/color][font=NSimsun][color=#0000bb]你这个禽兽
[/color][color=#007700]<{--elseif([/color][color=#0000bb]1[/color][/font][color=#007700][font=NSimsun])--}>
[/font][/color][font=NSimsun][color=#0000bb]女人我爱你
[/color][color=#007700]<{--elseif([/color][color=#0000bb]asdf[/color][/font][color=#007700][font=NSimsun])--}>
[/font][/color][color=#0000bb][font=NSimsun]我爱禽兽
[/font][/color][color=#007700][font=NSimsun]<{--endif--}>
[/font][/color][font=NSimsun][color=#ff8000]/*
单判断
*/
[/color][color=#007700]<{--if([/color][color=#0000bb]dsf[/color][/font][color=#007700][font=NSimsun])--}>
[/font][/color][color=#0000bb][font=NSimsun]爱上你是个错误
[/font][/color][color=#007700][font=NSimsun]<{--else--}>
[/font][/color][color=#0000bb][font=NSimsun]不爱又不好意思
[/font][/color][font=NSimsun][color=#007700]<{--endif--}>
</[/color][color=#0000bb]head[/color][/font][font=NSimsun][color=#007700]>
</[/color][color=#0000bb]html[/color][color=#007700]> [/color]
[/font][/color]
忘了加使用方法了:Q 都是女人害我的:
PHP代码:
[color=#000000]
[font=NSimsun][color=#007700]<?
include_once [/color][color=#dd0000]'./include/common.inc.php'[/color][/font][font=NSimsun][color=#007700];
[/color][color=#0000bb]$pm [/color][color=#007700]= array([/color][color=#dd0000]'asdf'[/color][color=#007700],[/color][color=#dd0000]'asdf'[/color][color=#007700],[/color][color=#dd0000]'sdf'[/color][color=#007700],[/color][color=#dd0000]'f'[/color][/font][font=NSimsun][color=#007700]);
[/color][color=#0000bb]$title [/color][color=#007700]= [/color][color=#dd0000]'中华人命共和国成里了'[/color][/font][font=NSimsun][color=#007700];
include [/color][color=#0000bb]template[/color][color=#007700]([/color][color=#dd0000]'yhm'[/color][/font][color=#007700][font=NSimsun]);
[/font][/color][font=NSimsun][color=#0000bb]?>
[/color]就这么简单. common.inc.php文件就是前面的 这个 "全局变量,函数文件.加入了防远程调用....."[/font][/color]
[font=新宋体][color=#000000][/color][/font]
[font=新宋体][color=#000000]孤独的人....前段时间认识位的兄弟...转载下他写的东西..........[/color][/font]
[font=新宋体][color=#000000]女人啊.............[/color][/font]
念念 2007-5-19 09:21
兄弟,你也太不厚道了吧。把什么错都加在女人身上:lol
secwijoy 2007-5-19 10:14
呵呵......
我这个兄弟 为了女人准备辞职呢...
唉...