用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 常用字符串函数总结
Mar 15 PHP
发一个php简单的伪原创程序,配合商城采集用的
Oct 12 PHP
PHP中ini_set和ini_get函数的用法小结
Feb 18 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
变量在 PHP7 内部的实现(二)
Dec 21 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
PHP高精确度运算BC函数库实例详解
Aug 15 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 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
php 三维饼图的实现代码
2008/09/28 PHP
PHP运行模式的深入理解
2013/06/03 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
日期 时间js控件
2009/05/07 Javascript
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
少女风vue组件库的制作全过程
2019/05/15 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[01:06:07]2014 DOTA2国际邀请赛中国区预选赛5.21 DT VS CIS
2014/05/22 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
Python输出9*9乘法表的方法
2015/05/25 Python
python中函数默认值使用注意点详解
2016/06/01 Python
Python实现两款计算器功能示例
2017/12/19 Python
python表格存取的方法
2018/03/07 Python
解决安装python库时windows error5 报错的问题
2018/10/21 Python
用Python中的turtle模块画图两只小羊方法
2019/04/09 Python
如何使用python操作vmware
2019/07/27 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
python实现图像外边界跟踪操作
2020/07/13 Python
Python reques接口测试框架实现代码
2020/07/28 Python
美国在线家具网站:GDFStudio
2021/03/13 全球购物
2013年学期结束动员演讲稿
2014/01/07 职场文书
国际经济与贸易专业求职信
2014/07/10 职场文书
2016年春季运动会加油稿
2015/07/22 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers