用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邮件发送,php发送邮件的类
Mar 24 PHP
深入php var_dump()函数的详解
Jun 05 PHP
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
Jun 20 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
推荐25款php中非常有用的类库
Sep 29 PHP
PHP根据两点间的经纬度计算距离
Oct 31 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
PHP常见过waf webshell以及最简单的检测方法
May 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
第三节 定义一个类 [3]
2006/10/09 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
php简单截取字符串代码示例
2016/10/19 PHP
繁简字转换功能
2006/07/19 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
BootStrap CSS全局样式和表格样式源码解析
2017/01/20 Javascript
webpack入门+react环境配置
2017/02/08 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
JS实现轮播图效果
2020/01/11 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
[01:02:09]Liquid vs TNC 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21
2020/07/19 DOTA
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
python3 实现的人人影视网站自动签到
2016/06/19 Python
python获取多线程及子线程的返回值
2017/11/15 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
德国在线订购鲜花:Fleurop
2018/08/25 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
中学教师个人总结
2015/02/10 职场文书
档案管理员岗位职责
2015/02/12 职场文书
2015年教师节新闻稿
2015/07/17 职场文书
详细分析PHP7与PHP5区别
2021/06/26 PHP
ICOM R71E和R72E图文对比解说
2022/04/07 无线电
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers