用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 相关文章推荐
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
Oct 20 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
mongodb和php的用法详解
Mar 25 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
推荐php模板技术[转]
2007/01/04 PHP
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
Knockoutjs快速入门(经典)
2012/12/24 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
8 个有用的JS技巧(推荐)
2019/07/03 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
javascript设计模式 ? 建造者模式原理与应用实例分析
2020/04/10 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python Socket编程详细介绍
2017/03/23 Python
Python编写登陆接口的方法
2017/07/10 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
用python监控服务器的cpu,磁盘空间,内存,超过邮件报警
2021/01/29 Python
纯CSS3制作的鼠标悬停时边框旋转
2017/01/03 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
中学实习教师自我鉴定
2013/12/12 职场文书
采购部经理岗位职责
2014/02/10 职场文书
应用数学专业求职信
2014/03/14 职场文书
会议欢迎标语
2014/06/30 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
JavaScript组合继承详解
2021/11/07 Javascript