好了,你可能想知道为什么你要使用FastTemplates。  ·可以在几秒钟改变你的整个站点的外观

·抽象程序设计,没有垃圾HTML代码

·设计人员不需要关心全部的"模糊"代码

·令人惊讶地快

·更容易重用旧的模版(对普通的表单而说)     FastTemplate源于一个有同样名称的Perl软件包(可以在CPAN上找到)。你可以下载PHP 的版本从它的主页(本站下载地址为:http://www.phpe.net/downloads/1.shtml)。你只需要其中的一个类的文件(class.FastTemplate.php)。    让我首先解释一下在使用模板生成一个页面与简单地通过echo或print 将页面输出之间有什么不同吧。

简单地使用echo/print的方法很适合编写短的脚本,但是不能帮助你更好的组织和定制。模板在另一方面给

了你创建多国语言站点的能力,只是通过改动一个参数。他们可以促使你更关心你要做的。    在开始编码之前不要害怕思考。它可能会花费一些时间,但是这些花费会随着项目的发展对你有所回报。    那么,如何应用FastTemplate呢?首先你需要先进行一个简单地调用:  <?php  $tpl=new FastTemplate ("path"); ?>  传递给它一个路径,是所有你的模板文件存放的目录。它返回一个对象,你可以用它进行参

数赋值,生成页面等等。     FastTemplate是基于这样一种假设:一个很大的页面是由很多小的部分组成的。每一个部分有一个唯一

的名字。最小的部分是赋值给这样有着唯一名字的一段正常的文本字符串。这个可以通过

$tpl->assign(NAME, "text");

?>

来完成。现在,如果你的一个模板包含{NAME},FastTemplate 就知道你

的意图了。

另外,FastTemplate需要知道你想如何调用你的模板。你需要通过传递一个相关数组(associative

array)给 <?php  $tpl->define(); ?>

来给它一个提示。

以下为引用的内容:

$tpl->define(array(foo => "foo.tpl",

bar => "bar.tpl"));

?>     这些赋值将分别给foo和bar以不同的文件(名为foo.tpl和bar.tpl)。    现在你想让FastTemplate替换在模板foo中的所有{MACROS}为相应的值。通过发出命令   以下为引用的内容:

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

?>   来实现。 这个命令将把模板"foo"的内容赋给PAGECONTENT。   当然,我们还没有做完,因为模板bar中为主要的页面定义,FastTemplate需要替换其中的

{PAGECONTENT}宏。我们也需要给PAGETITLE赋值,如下所做:

以下为引用的内容:

$tpl->assign(PAGETITLE, "FooBar test");

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

?>    容易吧,不是吗?我们现在只需要把它输出: <?php

$tpl->FastPrint(MAIN);

?>

下面三个文件显示了实际练习中的更多的细节描述。我不知道在现实生活了离了这个技术应如何生活 --

你的设计者会高兴,你的老板会微笑,因为你可以在更短的时间内做更多的事情。  以下为引用的内容:

bar.tpl

Feature world - {PAGETITLE}

{PAGETITLE}

{PAGECONTENT}

foo.tpl   很明显示什么都没做。请看{NAME}.

以下为引用的内容:  demo.php3

include "class.FastTemplate.php3";

$tpl = new FastTemplate( ".");

$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));   $tpl->assign(NAME, "me");

$tpl->assign(PAGETITLE, "Welcome!");

$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

以下为引用的内容:

Feature world - {PAGE_TITLE}

{PAGE_TITLE}

{PAGE_CONTENT}

table.tpl  以下为引用的内容:

name size

{TABLE_ROWS}

table_row.tpl   以下为引用的内容:{FILENAME}{FILESIZE}

yad.php3  以下为引用的内容:

include "class.FastTemplate.php3";

function InitializeTemplates() {

global $tpl;   $tpl = new FastTemplate( ".");

$tpl->define( array( page => "page.tpl",

table => "table.tpl",

table_row => "table_row.tpl" ) );

}   function ReadCurrentDirectory() {

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

}  function PrintPage($title) {

global $tpl;   $tpl->assign(PAGE_TITLE, $title);

$tpl->parse(FINAL, "page");

$tpl->FastPrint(FINAL);

}   InitializeTemplates();

ReadCurrentDirectory();

Printpage( "Yet Another Demo");

?>   速度讨论

"Ok," 你可能会说,"一切都太好了。但是它不会影响我的网站的速度吗?" www~    不,你的网站可能变得更快。一个简单的原因就是:因为你作为一个编程人员关心的是设计你的应用和编写代码,你的代码将会更有效率,处理相同的任务更容易和更快速。所以,你可能会在上面列出的为什么考虑使用FastTemplate在你的项目中的原因列表中增加另一条理由。     如果你只是想转换一个已经存在的web站点,性能上的成功可能不会被注意到。我建议在PHP中使用正则表达式缓冲,它将对这种情况有所帮助。因为FastTemplate对每一个宏都使用正则表达式,每一个正则表达式将被只编译一次并且速度上的影响可以忽略不计。

php 模板使用,在PHP中使用模板的方法相关推荐

  1. ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签

    ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...

  2. javascript 模板_了解JavaScript中的模板文字

    javascript 模板 The author selected the COVID-19 Relief Fund to receive a donation as part of the Writ ...

  3. netbeans html 格式化,在NetBeans中更改模板或HTML缩进

    在NetBeans中6.7 HTML模板应在 "工具>模板", "网络" 部分.如果它不在那里,也许你已经下载了"Java SE only&qu ...

  4. C++中标准模板库std::vector的实现

    以下实现了C++标准模板库std::vector的部分实现,参考了 cplusplus. 关于C++中标准模板库std::vector的介绍和用法可以参考 https://blog.csdn.net/ ...

  5. OpenCV中使用模板匹配识别空闲的货架空间

    但是点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 假设你是一名在超市工作的员工,被要求在商店里四处走动,检查需要 ...

  6. C++中的模板template

    1.Cpp中的模板template 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码.模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法都是泛型编程的例子,它们都使用了 ...

  7. php中template函数,thinkPHP模板中函数的使用方法

    这篇文章主要介绍了thinkPHP模板中函数的使用方法,结合实例形式对比分析了php函数的单独使用与thinkPHP模板中php函数的相应使用技巧,需要的朋友可以参考下 1.php中的方法使用 $va ...

  8. Tornado框架中视图模板Template的使用

    上文的程序中有这样一段: class MessageHandler(tornado.web.RequestHandler):def get(self):self.write(''' <html& ...

  9. iangularjs 模板_AngularJS中的模板安全与作用域绑定

    欢迎大家指导与讨论 : ) 一.前言 摘要:指令compile.$sce.作用域绑定.$compileProvider和其他资源安全设置.本文是笔者在学习时整理的笔记,由于技术还不够高,如果本章中有错 ...

最新文章

  1. python过滤多个开头结尾
  2. dos定义变量算术运算逻辑运算表达式分隔符
  3. 闭锁java_java多线程学习十::::CountDownLatch闭锁
  4. 聚类算法小记(part2)--谱聚类
  5. python 实例方法和类方法的区别_python中实例方法,类方法和静态方法的区别。...
  6. 51单片机初学3-从零开始制作一款电子时钟
  7. centos8.0配置静态IP详解
  8. 计算机蓝屏代码0x0000007b,win7开机蓝屏提示STOP:0X0000007B的解决方法
  9. 萤石云摄像头方向操控前端代码
  10. C语言中的数组(4)---二维数组的定义
  11. python列表解析的底层详解
  12. Excel 设置数字以万为单位显示以更准确地表达数目
  13. 谷粒商城学习笔记(更新中)
  14. 晏殊几何学导读花间流风方程定义与引理
  15. latex排版——博雅编辑室
  16. 区块链创业公司解散后,我去美团送外卖了 | 链人生
  17. Jira Sprit冲刺更改开始日期时出现 “18/Oct/21 10:38 AM”不是有效日期。请按下列格式输入日期:dd/MMM/yy h:mm a错误
  18. itools官方中文版2014 v2.0.3.8_苹果同步软件
  19. 可以计算阶乘次方的大数计算器
  20. 搭建jumperserver堡垒机管理万台服务器-1

热门文章

  1. 嘻哈说:开放封闭原则
  2. [训练日志] 7月22-31日
  3. 十八、可以输出文字了
  4. Office 365强势来袭PART1:云中Outlook体验
  5. Apache日志配置参数说明
  6. Server 2012 Hyper-v新功能之一:客户端 Hyper-V
  7. IMAP 称作交互邮件访问协议
  8. 一个电脑白痴和***的对话!
  9. python字典排序
  10. C#获取进程的CPU使用率