模板,PHPLIB处理方式(一)-经典文章-PHP教程-幽默笑话

2019-07-11  阅读 196 次

模板,PHPLIB处理方式(一)-经典文章-PHP教程-幽默笑话

文章内容模板,PHPLIB处理方式(一)修改时间:[2008/11/1100:40]阅读次数:[437]发表者:[起缘]  如果你正想知道什么是模板,首先去看一下SaschaSchumann写的精彩文章《》的前几段。

  一般来说,模板可以让你完全地把你的PHP代码从HTML中分离出来,这样使得HTML的图形设计者们非常高兴,而且可以避免他们搞丢你的宝贵设计。 它不是FastTemplates  那么,我们真的需要在PHPBuilder上关于模板的另一篇文章吗?好,是的,因为有不止一种的方法用PHP来实现模板。 Sascha的文章讲述了如何使用FastTEmplates,但是PHP基本类库("PHPLIB")有它自已的模板实现。

  它们有什么不同呢?FastTemplates最初是从一个Perl库转变来的。

FastTemplates对Perl程序工作的很好,但是对PHP不太理想。 KristianKoehntopp从头编写了PHPLIB模板,作为一个纯的PHP库,它更好地提供了PHP的优势。

好处之一是Kristian的设计使用了preg_replace()来分析模板,据说比FastTemplate中使用的ereg_replace()要快。

PHPLIB模板的另一个好处是它允许动态的块实现嵌套,不象FastTemplates。   两个库都有着非常相似的特性和能力,但是如果你已经使用了FastTemplates,并且你想学习使用PHPLIB模板,你应该把你所知道的关于FastTemplates的一切都忘掉。 他们的特性可能是相似的,但是PHPLIB模板所做的每件事比FastTemplates只有一点点不同。 使用PHPLIB模板  让我们从一个简单的例子开始。 我们假设在/home/mydir/mytemplates/下面有一个名为MyTemplate的模板,它有一些文本,内容可能是:祝贺!你赢了一辆{some_color}HondaPrelude!  注意"{some_color}"是用大括号包围的。

大括号指明some_color是一个模板变量。 我们可能想写这样一个脚本,它可以装入模板,在{some_color}模板变量的地方插入PHP变量$my_color的值,然后输出新的文本。 如果$my_color碰巧被设为"蓝色",最后的输出可能是:祝贺!你赢了一辆新蓝色HondaPrelude!下面是上述结果的PHP脚本:phpinclude"";$my_color="blue";//将在后面使用$t=newTemplate("/home/mydir/mytemplates/");//创建一个名为$t的模板对象$t-set_file("MyFileHandle","");//设置MyFileHandle=我们的模板文件$t-set_var("some_color",$my_color);//设置模板变量some_color=$my_color值$t-parse("MyOutput","MyFileHandle");//设置模板变量MyOutput=分析后的文件$t-p("MyOutput");//输出MyOutput的值(我们的分析后的数据)  第一行是一个include指令,用来提供PHPLIB模板功能。

当然PHPLIB做的比模板要多,但是如果你只想使用模板特性,只需要包括(是来自于PHPLIB的文件之一)。 PHPLIB模板使用面向对象程序设计,所以下一件事情就是创建一个模板对象。

代码php$t=newTemplate("/home/mydir/mytemplates/");创建一个新的模板对象$t。 这个$t对象是一个句柄,将用来处理所有的模板函数,用于PHP脚本中其它的代码。

如果你愿意,你可能创建其它的模板对象(每一个都有着自已的模板变量名字空间),但是一个就够用了。 在模板的构造函数调用中的路径("/home/mydir/mytemplates/")用来设置你的模板所在位置的根目录,但是如果你没有设它,它将缺省与你的PHP脚本所在目录一样。   然后我们调用set_file()来定义一个名为"MyFileHandle"的句柄来与链接(在parse()被调用之前,模板不会真正地装入)。

顺便说一下,PHPLIB模板的模板文件名的后缀为.ihtml是一种习惯,你可以使用.html,.tpl,或其它的后缀。 然后调用set_var()来设置模板变量some_color为$my_color的值(值为"蓝色"),意味着所有在模板中出现{some_color}的地方都将被词"蓝色"所替换,一旦我们调用了parse()。

接着我们调用parse(),它会装入MyFileHandle()进行分析,并且替换所有模板变量("{某变量}")为模板变量的值,分析的结果放在MyOutput中。

任何结果都不会输出到web服务器上,除非p("MyOutput")被调用,它将输出最后分析过的文本。

精彩文章推荐:
小升初衔接“八问”决胜新初一
经常手麻?注意可能是这些地方出了问题! 青岛金笔作文培训骗局
《国家人文历史》2010年第5期
新版GRE指点七月露面
大运会首金得主:金牌是送给自己最好的暑假礼物
汽车轮胎需多久才更换?日常又该怎样去做保养,了解一下
七年级下册语文《诗两首》的常识点梗阻 感受器的功能是什么
永善县成人高考志愿填报方法,云南昭通永善县成人高考怎么报志愿
爱情的女生情感签名如果你也爱我,那么请你告
思惟政治必修3《9.2培植社会主义精神文明》ppt课件免费下载
玩家心情:对CF新手说的话
梦见离婚是什么意思,好不好,代表什么 易卜居算命网
每日时事:2019年5月30日国内外时事新闻
梦见亲人死复活是什么意思
希腊移民可以不购房,但你不能不了解希腊区提名!