设为首页收藏本站language 语言切换
查看: 1602|回复: 0
收起左侧

用PHP制作静态网站的模板框架(四)

[复制链接]
发表于 2010-2-24 13:42:12 | 显示全部楼层 |阅读模式
静态网站的模板框架 <BR><BR>   首先,我们象前面一样为所有的页面公用元素以及页面整体布局编写模板文件;然后从所有的页面删除公共部分,只留下页面内容;接下来再在每个页面中加上三行PHP代码,如下所示: <BR><BR><BR>&lt;?php <BR><BR>&lt;!-- home.php --&gt; <BR>&lt;?php require('prepend.php'); ?&gt; <BR>&lt;?php pageStart('Home'); ?&gt; <BR><BR>&lt;h1&gt;你好&lt;/h1&gt; <BR>&lt;p&gt;欢迎访问&lt;/p&gt; <BR>&lt;img src="http://www.hh010.com/upload_files/article/242/9_xmpgsmdemo.jpg"&gt; <BR>&lt;p&gt;希望你能够喜欢本网站&lt;/p&gt; <BR><BR>&lt;?php pageFinish(); ?&gt; <BR><BR>?&gt; <BR><BR>   这种方法基本上解决了前面提到的各种问题。现在文件里只有三行PHP代码,而且没有任何一行代码直接涉及到模板,因此要改动这些代码的可能性极小。此外,由于HTML内容位于PHP标记之外,所以也不存在特殊字符的处理问题。我们可以很容易地将这三行PHP代码加入到所有静态HTML页面中。 <BR><BR>   require函数引入了一个PHP文件,这个文件包含了所有必需的与模板相关的PHP代码。其中pageStart函数设置模板对象以及页面标题,pageFinish函数解析模板然后生成结果发送给浏览器。 <BR><BR>   这是如何实现的呢?为什么在调用pageFinish函数之前文件中的HTML不会发送给浏览器?答案就在于PHP 4的一个新功能,这个功能允许把输出到浏览器的内容截获到缓冲区之中。让我们来看看prepend.php的具体代码: <BR><BR>&lt;?php <BR><BR>require('class.FastTemplate.php'); <BR><BR>function pageStart($title = '') { <BR>GLOBAL $tpl; <BR>$tpl = new FastTemplate('.'); <BR>$tpl-&gt;define( array( 'main' =&gt; 'main.htm', <BR>'header' =&gt; 'header.htm', <BR>'leftnav'=&gt; 'leftnav.htm' ) ); <BR>$tpl-&gt;assign('TITLE', $title); <BR>ob_start(); <BR>} <BR><BR>function pageFinish() { <BR>GLOBAL $tpl; <BR>$content = ob_get_contents(); <BR>ob_end_clean(); <BR>$tpl-&gt;assign('CONTENT', $content); <BR>$tpl-&gt;parse('HEADER', 'header'); <BR>$tpl-&gt;parse('LEFTNAV', 'leftnav'); <BR>$tpl-&gt;parse('MAIN', 'main'); <BR>$tpl-&gt;FastPrint('MAIN'); <BR>} <BR><BR>?&gt; <BR>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-17 04:38 , Processed in 0.064093 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表