用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学习之PHP表达式
Oct 09 PHP
PHP 写文本日志实现代码
May 18 PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
javascript some()函数用法详解
Nov 13 PHP
php动态绑定变量的用法
Jun 16 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
Zend Framework框架路由机制代码分析
Mar 22 PHP
PHP加密解密类实例代码
Jul 20 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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
set_include_path在win和linux下的区别
2008/01/10 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
体育彩票排列三组选三算法分享
2014/03/07 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
jQeury淡入淡出需要注意的问题
2010/09/08 Javascript
基于jQuery的Web上传插件Uploadify使用示例
2016/05/19 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
2018/08/07 Javascript
解决vue项目使用font-awesome,build后路径的问题
2018/09/01 Javascript
nodejs读取本地中文json文件出现乱码解决方法
2018/10/10 NodeJs
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
py中的目录与文件判别代码
2008/07/16 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
Python time库基本使用方法分析
2019/12/13 Python
浅谈Python协程
2020/06/17 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
2014厂务公开实施方案
2014/02/17 职场文书
元旦晚会主持词
2014/03/24 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
经销商年会策划方案
2014/05/29 职场文书
镇班子对照检查材料思想汇报
2014/09/24 职场文书
政府四风问题整改措施
2014/10/04 职场文书
限期整改通知书
2015/04/22 职场文书
2015年感恩母亲节活动方案
2015/05/04 职场文书
无工作证明怎么写
2015/06/15 职场文书