用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 相关文章推荐
php自动适应范围的分页代码
Aug 05 PHP
php算开始时间到过期时间的相隔的天数
Jan 12 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
解析link_mysql的php版
Jun 30 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
yii框架无限极分类的实现方法
Apr 08 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 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中开发XML应用程序之基础篇 添加节点 删除节点 查询节点 查询节
2010/07/09 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
php数据访问之查询关键字
2016/05/09 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
比较简单实用的使用正则三种版本的js去空格处理方法
2007/11/18 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
详解Python中的正则表达式
2018/07/08 Python
python实现KNN分类算法
2019/10/16 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
用python制作个音乐下载器
2021/01/30 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
The Hut英国:英国领先的豪华在线百货商店
2019/07/26 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
什么是岗位职责
2013/11/12 职场文书
校园安全广播稿
2014/02/08 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
python实现过滤敏感词
2021/05/08 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android