PHP3 之 FastTemplate-经典文章-PHP教程-幽默笑话

PHP3 之 FastTemplate-经典文章-PHP教程-幽默笑话

文章内容PHP3之FastTemplate修改时间:[2011/02/0403:14]阅读次数:[530]发表者:[起缘]当你在建立一个站点的时候,可能不得不面对以下现实:站点需要一名程序员来设计程序和一名网站设计者来组织页面。 那么,是否有使两者很好的结合起来的方法呢?有的,就是使用模板(FastTemplate:这个程序在本站的“程序和代码”中可以找到),这将会使你的工作更加轻松。

下面解释一下使用模板的好处:1、在很短的时间内可以替换整个站点的外观2、使程序员可以抽象编程,而无须接触HTML代码3、速度非常之快4、可以重复利用以前的模板模板的来历:FastTemplate来自于同名的Perl软件包(在CPAN上可以找到)。

它被移植到了PHP3平台上。 你只需要一个基础类文件先解释一下使用模板和使用echo或print命令建立html页面的区别,echo和print在编写短小的脚本时显得非常实用,但是做出来的脚本的组织性和可定制性不好,修改起来颇废工夫,模板在编写支持多国语种的站点时的效率则要高的多,如用echo和print可以想象工作量之大。

不用担心,熟练使用FastTemplate会占去你一部分时间,但是这些时间会在你以后的工作中弥补回来,尤其是大工程时。 那么,怎么使用FastTemplate呢?第一步,只需使用函数php$tpl=newFastTemplate("path");,其中path指向template目录所在的路径。

这句函数建立了一个$tpl对象,以后可以对它指定参数,进行处理或用来建立各种页面等等。

FastTemplate是建立在这么一种理论基础之上的,即假定一个web页是由许多小的部分组成的。 举例来说,如WEB页细分为TITLE、PAGE、FOOT等等。

整个页被赋予一个变量名,每一个小部分又被赋予一个变量名,最小的不可分割的部分通常就是字符串了,它也被赋予一个变量名。 具体处理的时候,是一层层的包含关系。

被包含部分在上一层中以宏{NAME}的形式出现。

最后经过一层层的向上输出,得到完整的页面。 那么最底层的向字符串赋值的函数是什么呢,就是:php$tpl-assign(NAME,"text");通过这个功能,FastTemplate将字符串text赋予了变量NAME,以后上一层就可替换宏{NAME}的内容为text。

例如:$tpl-assign(NAME,"me");这就将变量NAME赋值了字符串"me"。 第二步,$tpl需要知道其所调用的所有模板文件,即各个小部分。 这个功能由define一个数组实现:php$tpl-define();例如:php$tpl-define(array(foo="",bar=""));这说明总共包括了两个模板文件:和,并给它们指定了名字foo和bar。 有了第一节的知识以后,你现在是否想试一试将模板文件中所包含的宏{MACROS}部分按照自己定义的变量替换呢?使用以下的命令即可实现:php$tpl-parse(PAGECONTENT,"foo");这条命令的具体意义是:我们首先已经用assign定义了FOO模板中包含的若干宏变量,然后根据这些变量对模板文件FOO进行替换处理,并将替换后的模板文件赋予另一个变量名PAGECONTENT。

完整如下:php$tpl-assign(NAME,"me");$tpl-parse(PAGECONTENT,"foo");当然,我们还没有作完,因为bar模板文件才是WEB的主输出部分,BAR模板包含着FOO模板,BAR中还包含着宏变量{PAGETITLE}和{PAGECONTENT}等待处理,PAGECONTENT经过对FOO的处理已经得到,PAGETITLE还未指定,所以还要还要指定PAGETITLE,并调用函数php$tpl-parse(MAIN,"bar");进行处理,并将处理后的结果赋予变量MAIN。

如下:php$tpl-assign(PAGETITLE,"FooBartest");$tpl-parse(MAIN,"bar");很简单吧,最后我们只需输出页面即可:php$tpl-FastPrint(MAIN);下面就是,与最终的文件。

请大家仔细琢磨琢磨:-------------------------------------------------------------!--{NAME}.-------------------------------------------------------------!--{PAGETITLE}/TITLE/HEADBODYBGCOLOR=BLACKTEXT=WHITEH1{PAGETITLE}/H1{PAGECONTENT}/BODY/HTML------------------------------------------------------------"";$tpl=newFastTemplate(".");$tpl-define(array(foo="",bar=""));$tpl-assign(NAME,"me");$tpl-parse(PAGECONTENT,"foo");$tpl-assign(PAGETITLE,"Welcome!");$tpl-parse(MAIN,"bar");$tpl-FastPrint(MAIN);------------------------------------------------------------编制一个表格的例子:经过以上的阐述,大家是否已经明白一点了。

下面是一个处理表格的例子,首先我们再学一些新知识。 当我们当处理完foo模板后,并赋予了变量TPL1,我们可以将bar模板的内容处理后追加进TPL1中,这样就不必定义过多变量,也易于理解,例处理完页面的title后将content部分追加进去,最后将foot追加,生成完整一个页面再输出。

这条命令就是:php$tpl-parse(TPL1,".bar");其中的.表示追加。

如下:php#处理模板foo,并赋予变量TPL1$tpl-parse(TPL1,"foo");#处理模板bar,并追加进变量TPL1$tpl-parse(TPL1,".bar");下面是一个完整的表格例子,大家好好揣摸揣摸{PAGE_TITLE}/TITLE/HEADBODYBGCOLOR=BLACKTEXT=WHITEH1{PAGE_TITLE}/H1{PAGE_CONTENT}/BODY//THTHsize/TH/TR{TABLE_ROWS}/TABLEtable_{FILENAME}/TDTD{FILESIZE}/TD/"";functionInitializeTemplates(){global$tpl;$tpl=newFastTemplate(".");$tpl-define(array(page="",table="",table_row="table_"));}functionReadCurrentDirectory(){global$tpl;$handle=opendir(".");while($filename=readdir($handle)){$tpl-assign(FILENAME,$filename);$tpl-assign(FILESIZE,filesize($filename));$tpl-parse(TABLE_ROWS,".table_row");}closedir($handle);$tpl-parse(PAGE_CONTENT,"table");}functionPrintPage($title){global$tpl;$tpl-assign(PAGE_TITLE,$title);$tpl-parse(FINAL,"page");$tpl-FastPrint(FINAL);}InitializeTemplates();ReadCurrentDirectory();Printpage("YetAnotherDemo");关于速度的最后一点讨论:看完以上的例子,你会说“太棒了!漂亮,但是,速度怎么样呢?”没问题,你的站点会变得很快。

简单的说:因为你是一个程序员,你应该关注于程序代码的设计,代码应该更加有效率,应容易修改和容易理解。

使用FastTemplate可以可以帮助你做到这一点,所以它使你的工作更加轻松一些。 如果你想替代一个已经建好的Web站点,我们建议使用regex(替换表达式)来替换,实际上FastTemplate使用的就是regex来替换模板中的宏。

<#longshao:sxy_article#>

你还会喜欢:

{主关键词}
湖南省年夜学英语四六级考试报名系统httpshekao.hneao.cncet 湖南英语四六级考试报名进口 提交

{主关键词}
谁让你的个人信息在“裸奔”?——部分APP“过分”收集用户信息调查

{主关键词}
首都医科大学附属北京安贞医院皮肤性病科网上预约挂号

{主关键词}
无法忘怀的经典 梦之旅演唱组合《粤唱粤迷·爱在深秋》

{主关键词}
宋高宗自白:朕为什么非要杀岳飞?

{主关键词}
农民诗人!这名贵州七十六岁农老汉爱作诗,诗词布满自家墙

{主关键词}
《我的高冷先生》全章节目录

{主关键词}
夏日钟爱高冷范儿 “黑守党”造型大盘点

{主关键词}
2019年河北外来往语学院高考尽兴顺俗书彻上彻下进口

{主关键词}
电竞的未来在中国!看完我们的“世界杯”,更坚信这点了

{主关键词}
【多彩亚洲 美美与共】中阿携手保护文物 共守丝路文明

{主关键词}
长治一言必有中持刀捅刺治疗致志医院应允夫一案,樊篱宣判!