模板,PHPLIB处理方式(一)

模板

如果你正想知道什么是模板,首先去看一下Sascha Schumann写的精彩文章《模板-为什么和如何在PHP3中使用它们(Templates - why and how to use them in PHP3)》的前几段。

   一般来说,模板可以让你完全地把你的PHP代码从HTML中分离出来,这样使得HTML的图形设计者们非常高兴,而且可以避免他们搞丢你的宝贵设计。

它不是FastTemplates
  那么,我们真的需要在PHPBuilder上关于模板的另一篇文章吗?好,是的,因为有不止一种的方法用PHP来实现模板。Sascha的文章讲述了如何使用FastTEmplates,但是PHP基本类库("PHPLIB")有它自已的模板实
现。

  它们有什么不同呢?FastTemplates最初是从一个Perl库转变来的。FastTemplates对Perl程序工作的很好,但是对PHP不太理想。Kristian Koehntopp从头编写了PHPLIB模板,作为一个纯的PHP库,它更好地提供了PHP的优势。好处之一是Kristian的设计使用了preg_replace()来分析模板,据说比FastTemplate 中使用的ereg_replace()要快。PHPLIB模板的另一个好处是它允许动态的块实现嵌套,不象FastTemplates。

  两个库都有着非常相似的特性和能力,但是如果你已经使用了FastTemplates,并且你想学习使用PHPLIB模板,你应该把你所知道的关于FastTemplates 的一切都忘掉。他们的特性可能是相似的,但是PHPLIB模板所做的每件事比FastTemplates只有一点点不同。

使用PHPLIB模板
  让我们从一个简单的例子开始。我们假设在/home/mydir/mytemplates/下面有一个名为MyTemplate的模板,它有一些文本,内容可能是:

祝贺!你赢了一辆{some_color}Honda Prelude!

  注意"{some_color}"是用大括号包围的。大括号指明some_color是一个模板变量。我们可能想写这样一个脚本,它可以装入模板,在{some_color}模板变量的地方插入PHP变量$my_color的值,然后输出新的文本。如果$my_color碰巧被设为"蓝色",最后的输出可能是:

祝贺!你赢了一辆新蓝色Honda Prelude!

下面是上述结果的PHP脚本: <?php
include "template.inc";

$my_color = "blue";
// 将在后面使用

$t = new Template("/home/mydir/mytemplates/");
// 创建一个名为 $t 的模板对象

$t->set_file("MyFileHandle","MyTemplate.ihtml");
// 设置 MyFileHandle = 我们的模板文件

$t->set_var("some_color",$my_color);
// 设置模板变量 some_color = $my_color值

$t->parse("MyOutput","MyFileHandle");
// 设置模板变量 MyOutput = 分析后的文件

$t->p("MyOutput");
// 输出 MyOutput 的值(我们的分析后的数据)
?>
  第一行是一个include 指令,用来提供PHPLIB模板功能。当然PHPLIB做的比模板要多,但是如果你只想使用模板特性,只需要包括tmplate.inc (template.inc是来自于PHPLIB的文件之一)。PHPLIB模板使用面向对象程序设计,所以下一件事情就是创建一个模板对象。代码 <?php $t = new Template (
"/home/mydir/mytemplates/" ); ?>
创建一个新的模板对象$t。这个$t对象是一个句柄,将用来处理所有的模板函数,用于PHP脚本中其它的代码。如果你愿意,你可能创建其它的模板对象(每一个都有着自已的模板变量名字空间),但是一个就够用了。在模板的构造函数调用中的路径("/home/mydir/mytemplates/")用来设置你的模板所在位置的根目录,但是如果你没有设它,它将缺省与你的PHP脚本所在目录一样。

  然后我们调用set_file()来定义一个名为"MyFileHandle"的句柄来与MyTemplate.ihtml链接(在parse()被调用之前,模板不会真正地装入)。顺便说一下,PHPLIB模板的模板文件名的后缀为.ihtml 是一种习惯,你可以使用.html,.tpl,或其它的后缀。然后调用set_var()来设置模板变量some_color为$my_color的值(值为"蓝色"),意味着所有在模板中出现{some_color}的地方都将被词"蓝色"所替换,一旦我们调用了parse()。接着我们调用parse(),它会装入MyFileHandle(MyTemplate.ihtml)进行分析,并且替换所有模板变量("{某变量}")为模板变量的值,分析的结果放在MyOutput中。任何结果都不会输出到web服务器上,除非 p("MyOutput")被调用,它将输出最后分析过的文本。

时间: 2024-10-23 23:33:35

模板,PHPLIB处理方式(一)的相关文章

模板,PHPLIB处理方式(二)

模板 嵌套的模板 parse()函数的一个灵巧的特性是它创建的MyOutput句柄是一个真正的模板变量,就象some_color 是一 个模板变量.所以如果你有另一个模板,它有一个{MyOutput}标签,当你分析第二个模板时,所有的 {MyOutput}标记将被替换为MyOutput中的分析后的文本.这个特性允许你将一个模板文件嵌入到另一个模板 中.所以,我们可能有另一个名为wholePage.ihtml的模板,内容如下: 对不起,你没赢.但是如果你赢了,我们将对你说: {MyOutput}

模板,PHPLIB处理方式

模板 如果你正想知道什么是模板,首先去看一下Sascha Schumann写的精彩文章<模板-为什么和如何在PHP3中使用它们(Templates - why and how to use them in PHP3)的前几段. 一般来说,模板可以让你完全地把你的PHP代码从HTML中分离出来,这样使得HTML的图形设计者们非常高兴,而且可以避免他们搞丢你的宝贵设计. 它不是FastTemplates那么,我们真的需要在PHPBuilder上关于模板的另一篇文章吗?好,是的,因为有不止一种的方法用

PHPLIB处理方式

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

在PHP世界中选择最合适的模板--比较PHPLIB Template和FastTemplate

比较|模板 PHP工程中的模板应用,是进行中型乃至大型项目中建议采用的处理表现层的好办法.但是具体到模板的实施,采用何种现有的模板技术却需要进行一番比较.PHP世界中比较受关注的模板处理有PHPLIB Template和FastTemplate两种,我们对技术的易用性和速度进行了评测--想知道结果吗? 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"

PHP模板引擎SMARTY

模板 用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择, 但是官方引擎SMARTY诞生后,选择就有了变化.它的理念和实现都是 相当"前卫"的.本文主要讨论SMARTY之于其他模板引擎的不同特点, 简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了 SMARTY和PHPLIB template的速度和易用性. 一.MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代 表了"模型"."视图&q

在PHP世界中选择最合适的模板与使用方法第1/2页_php模板

在PHP世界中选择最合适的模板 /google 的广告条--> 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"前辈先哲"讨论过了.就项目实施而言,在一些中型甚至大型的项目中,有效的将HTML(还有其他文本形式的表现层)和PHP代码分开,不仅在开发阶段可以分别提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大

PHP模板引擎SMARTY_php基础

用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择, 但是官方引擎SMARTY诞生后,选择就有了变化.它的理念和实现都是 相当"前卫"的.本文主要讨论SMARTY之于其他模板引擎的不同特点, 简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了 SMARTY和PHPLIB template的速度和易用性. 一.MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代 表了"模型"."视图"

快速巧用页眉页脚制作模板

一份正式的文件往往需要有单位统一的板式,一份美丽的排版也离不开页眉与页脚,所以现在与大家分享一下做页眉与页脚的经验. 一.打开和关闭页眉界面 单击打开菜单栏的视图菜单或按快捷键Alt+V(如图1.1),单击页眉与页脚选项或者按快捷键H,进入页眉页脚设置模式.特别注意的是,如果已经设置了页眉和页脚,只需要在页面页眉与页脚处双击即可修改页眉页脚内容.另外,若想返回普通界面,重新执行上述操作或者双击页面中间非页面页眉和页脚位置即可. 图1.1 一般而言在撰写文章之前就应该设置好页面页眉与页脚,这样可以

干货:模板网站SEO优化技巧!

对企业来说,线上流量的关键就是SEO优化.模板网站是否有利于SEO优化?很多人会以为定制网站比模板网站更利于优化,其实并不全对.下面笔者就为大家解答模版网站如何进行SEO优化. 模版网站不利于SEO优化吗? SEO优化刚流行时,建设网站往往会选择模板建站方式,起初百度的各项优化制度并不完善,对SEO优化的要求也并不严格,模板建站在当时是比较流行的,很少有人去单独通过定制来制作网站.随着百度算法的不断更新,对优化的要求也越来越高.框架式的模板网站逐渐不被百度新算法所接纳,所以形成了一种广为流传的说