用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开发文件系统实例讲解
Oct 09 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
关于PHP开发的9条建议
Jul 27 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
php禁用函数设置及查看方法详解
Jul 25 PHP
Zend Framework分发器用法示例
Dec 11 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
Aug 11 PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 PHP
PHP操作Redis常用命令的实例详解
Dec 23 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中使用Select 查询语句的实例
2014/02/19 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
Aster vs Newbee BO5 第二场2.19
2021/03/10 DOTA
js window.event对象详尽解析
2009/02/17 Javascript
jquery构造器的实现代码小结
2011/05/16 Javascript
String.prototype实现的一些javascript函数介绍
2013/11/22 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
pm2 部署 node的三种方法示例
2017/10/20 Javascript
webpack构建的详细流程探底
2018/01/08 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
nodeJS进程管理器pm2的使用
2019/01/09 NodeJs
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
Python中的推导式使用详解
2015/06/03 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
python利用faker库批量生成测试数据
2020/10/15 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
人力资源专员自我评价怎么写
2013/09/19 职场文书
禁烟标语大全
2014/06/11 职场文书
2014年小学语文工作总结
2014/12/20 职场文书
降价通知函
2015/04/23 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书