用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+mysql)
Nov 23 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
PHP实现根据银行卡号判断银行
Apr 29 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
yii2分页之实现跳转到具体某页的实例代码
Jun 02 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 PHP
Laravel框架实现抢红包功能示例
Oct 31 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
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
怎么使 Mysql 数据同步
2006/10/09 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
asp.net和php的区别点总结
2019/10/10 PHP
可输入的下拉框
2006/06/19 Javascript
javascript编程起步(第四课)
2007/01/10 Javascript
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
ui组件之input多选下拉实现方法(带有搜索功能)
2016/07/14 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
医学生求职自荐信
2013/10/25 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
五分钟演讲稿
2014/04/30 职场文书
电钳工人个人求职信
2014/05/10 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
驳回起诉裁定书
2015/05/19 职场文书
nginx配置之并发频次限制
2022/04/18 Servers