在PHP中使用模板的方法

时间:2021-05-25

好了,你可能想知道为什么你要使用FastTemplates。

·可以在几秒钟改变你的整个站点的外观
·抽象程序设计,没有垃圾HTML代码
·设计人员不需要关心全部的"模糊"代码
·令人惊讶地快
·更容易重用旧的模版(对普通的表单而说)

  FastTemplate源于一个有同样名称的Perl软件包(可以在CPAN上找到)。你可以下载PHP的版本从它的主页(本站下载地址为:http://e!");




$tpl->parse(PAGECONTENT,"foo");
$tpl->parse(MAIN,"bar");



$tpl->FastPrint(MAIN);
?>

创建整个表格
  我也写了一个短的例子,用来演示如何通过单行模板来生成整个表格。它很有效,因为你仍然不需要直
接修改HTML文档。



  我们增加一个模板的内容到一个已经定义过的唯一命名的后面来创建HTML表格。这个可以通过在调用
$tpl->parse()时,在模板名前加上一个"."来实现。<?php
//将模板foo的内容赋给TPL1
$tpl->parse(TPL1,"foo");

//在TPL1后附上模板bar的内容
$tpl->parse(TPL1,".bar");
?>

page.tpl




以下为引用的内容:
<HTML>
<HEAD><TITLE>Featureworld-{PAGE_TITLE}</TITLE></HEAD>
<BODYBGCOLOR=BLACKTEXT=WHITE>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
table.tpl



以下为引用的内容:
<TABLE>
<TR><TH>name</TH><TH>size</TH></TR>
{TABLE_ROWS}
</TABLE>





table_row.tpl

以下为引用的内容:
<TR>
<TD>{FILENAME}</TD>
<TD>{FILESIZE}</TD>
</TR>




yad.php3



以下为引用的内容:
<?php
include"class.FastTemplate.php3";
functionInitializeTemplates(){
global$tpl;

$tpl=newFastTemplate(".");
$tpl->define(array(page=>"page.tpl",
table=>"table.tpl",
table_row=>"table_row.tpl"));
}

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");
?>

速度讨论




  "Ok,"你可能会说,"一切都太好了。但是它不会影响我的网站的速度吗?"www~

  不,你的网站可能变得更快。一个简单的原因就是:因为你作为一个编程人员关心的是设计你的应用和编写代码,你的代码将会更有效率,处理相同的任务更容易和更快速。所以,你可能会在上面列出的为什么考虑使用FastTemplate在你的项目中的原因列表中增加另一条理由。

  如果你只是想转换一个已经存在的web站点,性能上的成功可能不会被注意到。我建议在PHP中使用正则表达式缓冲,它将对这种情况有所帮助。因为FastTemplate对每一个宏都使用正则表达式,每一个正则表达式将被只编译一次并且速度上的影响可以忽略不计。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章