快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

避免页面元素重复


   “这确实不错”,你也许会想,“我的网站主要就是由大量的静态页面构成。现在我可以从所有页面中删除它们的公共部分,要更新这些公共部分实在太麻烦了。以后我就可以用模板制作出很轻易维护的统一页面布局。”但事情并非这么简朴,“大量的静态页面”道出了问题的所在。


   请考虑上面的例子。这个例子实际上只有一个example.php页面,它之所以能够生成整个网站的所有页面,是因为它利用了URL中的查询字符串从数据库之类的信息源动态地构造出页面。


   我们之中的大多数人所运行的网站并不一定都有数据库支持。我们的网站大多数由静态页面构成,然后用PHP在这里、那里加上一些动态功能,比如搜索引擎、反馈表单等。那么,如何在这种网站上应用模板呢?


   最简朴的方式是为每一个页面复制一份PHP文件,然后在每一个页面中把PHP代码里代表内容的变量设置成合适的页面内容。例如,假设有三个页面,它们分别是主页(home)、关于(about)和产品(product),我们可以用三个文件分别生成它们。这三个文件的内容都类如:


<?php

// home.php
require(\\'class.FastTemplate.php\\');
$tpl = new FastTemplate(\\'.\\');
$tpl->define( array( \\'main\\' => \\'main.htm\\',
\\'header\\' => \\'header.htm\\',
\\'leftnav\\' => \\'leftnav.htm\\' ) );

$content = "<p>欢迎访问</p>
<img src="demo.jpg">
<p>希望你能够喜欢本网站</p>";
$tpl->assign(\\'CONTENT\\', $content);
$tpl->parse(\\'HEADER\\', \\'header\\');
$tpl->parse(\\'LEFTNAV\\', \\'leftnav\\');
$tpl->parse(\\'MAIN\\', \\'main\\');
$tpl->FastPrint(\\'MAIN\\');

?>



   显然,这种方式有三个问题:我们必须为每一个页面复制这些复杂的、牵涉到模板的PHP代码,这与重复公共页面元素相同使得页面难以维护;现在文件又混合了HTML和PHP代码;为内容变量赋值将变得异常困难,因为我们必须处理好大量的特别字符。


   解决这个问题的要害就在于分离PHP代码和HTML内容,虽然我们不能从文件中删除所有的HTML内容,但可以移出绝大多数PHP代码。

返回类别: 教程
上一教程: PHP开发中文件操作疑难问答
下一教程: 能得到你是从什么页面过来的,referer的用处

您可以阅读与"用PHP制作静态网站的模板框架(三)"相关的教程:
· 用PHP制作静态网站的模板框架(四)
· 用PHP制作静态网站的模板框架(一)
· 用PHP制作静态网站的模板框架(二)
· cqlctpl php模板开始提供,最好用,功能最强盛的模板
· PHP.MVC的模板标签系统(一)
    微笑服务 优质保证 索取样品