用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 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
php去除HTML标签实例
Nov 06 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
android上传图片到PHP的过程详解
Aug 03 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
Nov 09 PHP
PHP简单遍历对象示例
Sep 28 PHP
Laravel手动分页实现方法详解
Oct 09 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
php curl操作API接口类完整示例
May 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
2016/11/21 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
Vue.js实现无限加载与分页功能开发
2016/11/03 Javascript
多种方式实现js图片预览
2016/12/12 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
Python中操作文件之write()方法的使用教程
2015/05/25 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
演讲稿怎么写才完美
2014/01/02 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
大学生村官承诺书
2014/03/28 职场文书
争做文明公民倡议书
2014/08/29 职场文书
医生见习报告范文
2014/11/03 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
手把手教你制定暑期学习计划,让你度过充实的暑假
2019/08/22 职场文书
win10安装配置nginx的过程
2021/03/31 Servers
Android自定义scrollview实现回弹效果
2022/04/01 Java/Android
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android