用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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP5中的this,self和parent关键字详解教程
Mar 19 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
基于PHP CURL获取邮箱地址的详解
Jun 03 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
PHP简单实现无限级分类的方法
May 13 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 PHP
php的api数据接口书写实例(推荐)
Sep 22 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
Protoss建筑一览
2020/03/14 星际争霸
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
用JavaScript实现动画效果的方法
2013/07/20 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
js opener的使用详解
2014/01/11 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
python实现给微信公众号发送消息的方法
2017/06/30 Python
Python3计算三角形的面积代码
2017/12/18 Python
python多进程实现文件下载传输功能
2018/07/28 Python
python占位符输入方式实例
2019/05/27 Python
python之yield和Generator深入解析
2019/09/18 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
Python requests接口测试实现代码
2020/09/08 Python
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
办公室文员工作职责
2014/01/31 职场文书
2014年国培研修感言
2014/03/09 职场文书
老师对学生的寄语
2014/04/09 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
学生会副主席竞选稿
2015/11/19 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL