用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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
php面象对象数据库操作类实例
Dec 02 PHP
php生成txt文件实例代码介绍
Apr 28 PHP
php简单截取字符串代码示例
Oct 19 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
PHP7新功能总结
Apr 14 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
laravel中Redis队列监听中断的分析
Sep 14 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和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP之预定义接口详解
2015/07/29 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
javascript event 事件解析
2011/01/31 Javascript
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
详解Vue 全局引入bass.scss 处理方案
2018/03/26 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
ubuntu上安装python的实例方法
2019/09/30 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
python爬取微博评论的实例讲解
2021/01/15 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
求职信模板怎么做
2014/01/26 职场文书
班级活动策划书
2014/02/06 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
公司财务经理岗位职责
2015/04/08 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
警示教育观后感
2015/06/17 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android