•    现在大部分模板类中都提供block功能,block用来处理不确定个数的HTML 元素,当出现多层不可定的元素,就会用到block的嵌套,对于block嵌套的用法,经过多次测试还是有需要注意的地方,下面用一个例子说明block嵌套的一种处理方法。

    1、我们先来看一下例子要达到的效果(图一):

    点击查看原图

  • 嵌套的模板

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

    对不起,你没赢。但是如果你赢了,我们将对你说:
    {MyOutput}

      并且在wholePage.ihtml被分析后,最后的结果将是:

    对不起,你没赢。但是如果你赢了,我们将对你说:
    祝贺!你赢了一辆新蓝色Honda Prelude!

      下面是分析两个模板的PHP代码:
  •    一般来说,模板可以让你完全地把你的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只有一点点不同。