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


Posted in PHP onOctober 09, 2006

PHP代码全部保存到单独的文件中,这个文件也就是由页面URL实际调用的文件。Web服务器通过PHP引擎解析该文件,然后把结果返回给浏览器。一般地,PHP代码总是动态地生成页面内容,比如查询数据库或者执行某种计算等。下面是一个例子:

<?php

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

// 此处的PHP代码设置$content使其包含合适的页面内容

$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header');
$tpl->parse('LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main');
$tpl->FastPrint('MAIN');

?>

这里我们使用的是流行的FastTemplate模板类,但其基本思路对于其他许多模板类来说都一样。首先你实例化一个类,告诉它到哪里去寻找模板文件以及哪一个模板文件与页面的哪部分对应;接下来是生成页面内容,把结果赋予内容的标识符;然后,依次解析各个模板文件,模板类将执行必要的替换操作;最后把解析结果输出到浏览器。

这个文件完全由PHP代码构成,不包含任何HTML代码,这是它最大的优点。现在,PHP程序员可以集中精力编写生成页面内容的代码,而不必为了如何生成HTML去正确地格式化最终页面而担心。

你可以使用这种方法和上面的文件构造出一个完整的网站。如果PHP代码是以URL中的查询字符串为基础生成页面内容,例如http://www.foo.com/example.php?article=099,你可以据此构造出一个完整的杂志网站。

很容易看出采用模板还有第二个好处。如上例所示,页面左边的导航条单独保存为一个文件,我们只需编辑这一个模板文件就可以改变网站所有页面左边的导航条。

PHP 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
一个简单计数器的源代码
Oct 09 PHP
php minixml详解
Jul 19 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
PHP缓存机制Output Control详解
Jul 14 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
PHP基于yii框架实现生成ICO图标
Nov 13 PHP
理解PHP中的Session及对Session有效期的控制
Jan 08 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
PHP使用两个栈实现队列功能的方法
Jan 15 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
用PHP制作静态网站的模板框架(一)
Oct 09 #PHP
php的header和asp中的redirect比较
Oct 09 #PHP
文件上传的实现
Oct 09 #PHP
简单易用的计数器(数据库)
Oct 09 #PHP
用Php实现链结人气统计
Oct 09 #PHP
也谈 PHP 和 MYSQL
Oct 09 #PHP
在WIN98下以apache模块方式安装php
Oct 09 #PHP
You might like
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
jQuery 性能优化指南(3)
2009/05/21 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
使用npm命令提示: 'npm' 不是内部或外部命令,也不是可运行的程序的处理方法
2020/05/14 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
Python中让MySQL查询结果返回字典类型的方法
2014/08/22 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python根据txt文本批量创建文件夹
2020/12/08 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
pytorch之Resize()函数具体使用详解
2020/02/27 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
2020/07/05 Python
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
农民致富事迹材料
2014/01/23 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
家长对孩子的评语
2014/04/18 职场文书
代理人委托书
2014/08/01 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
python中super()函数的理解与基本使用
2021/08/30 Python