快速业务通道

PHPLIB Template入门系列之模板嵌套

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

在PHP程序里,我们常常会把"公用代码"或"公用部分"写进一个文件里,前者象我们的系统配置文件,比如config.php,或者公共函数都写入一个functions.php文件里;后者象一个站点都需要用到的页面头部,尾部.这样做的好处是可以很方便的维护站点,而如果这个公用部分要有所改动,无需再去改每一个页面,大大减少了我们的工作量. PHPLIB Template入门系列 - 4 模板嵌套
【楼 主】
在PHP程序里,我们常常会把"公用代码"或"公用部分"写进一个文件里,前者象我们的系统配置文件,比如config.php,或者公共函数都写入一个functions.php文件里;后者象一个站点都需要用到的页面头部,尾部.这样做的好处是可以很方便的维护站点,而如果这个公用部分要有所改动,无需再去改每一个页面,大大减少了我们的工作量.
以前你或许用require,include(require_once,include_once)引进一个公用的页面头部,确实方便而有效,现在我们用Template模板类也可以实现了,并且可以很方便的把一个页面随意插入另一个模板的任意地方.如果你想也把要插进的页面做成含有变量的模板的话,那么你会发现模板类会把这个工作处理的很好.

在template目录下新建三个文件third.html,header.html,footer.html.内容分为如下
third.html
<!-- 这是页面头部 -->

<BODY>
下面是一个列表
<UL>
<!-- BEGIN list -->
<li> 的成绩是
<!-- END list -->
</UL>
<!-- 这是页面脚部 -->

</BODY>
</HTML>

header.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> </TITLE>
</HEAD>

footer.html
<P>author © iwind

你也看到了,我们前几节的例子中都是用
$tpl->set_file("main", "模板文件名");
来加载模板文件的。只所以命名为"main",是因为我们想给它一个意义:主模板。这里的third.html就可以称之为“主模板”,而欲嵌入主模板third.html的变量所在位置的模板文件header.html,则可以称为"子模板".同样footer.html也是一个"子模板",我们想把它放到主模板里的位置.一个主模板内可以随意嵌入不限内容,尺寸大小,格式等的任何多个子模板.

下面我们开始我们的PHP程序.

先是创建一个类的实例对象
//包含进模板类 template.inc
require "inc/template.inc";

//创建一个实例
$tpl = new Template("template");

//读进三个模板文件的内容,分别给变量"main", "my_header", "my_footer"
$tpl->set_file("main", "third.html");
$tpl->set_file("my_header", "header.html");
$tpl->set_file("my_footer", "footer.html");

//执行my_header,my_footer里的模板变量替换,并把最终结果分别赋给主模板中的header,footer
$tpl->parse("header", "my_header");
$tpl->parse("footer", "my_footer");

//然后完成主模板内变量的替换,并输出主模板分析后的内容
$tpl->parse("mains", "main");

//输出
$tpl->p("mains");

于是,我们便可以通过查看源文件确信header.html,footer.html两个子模板文件的内容已经被加进主模板里了.

<!-- 这是页面头部 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> </TITLE>
</HEAD>
<BODY&g

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号