用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 相关文章推荐
PR值查询 | PageRank 查询
Dec 20 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
apache和PHP如何整合在一起
Oct 12 PHP
PHP函数func_num_args用法实例分析
Dec 07 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
php处理复杂xml数据示例
Jul 11 PHP
php文件管理基本功能简单操作
Jan 16 PHP
微信公众号开发之通过接口删除菜单
Feb 20 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
Apr 20 PHP
PHP的mysqli_stat()函数讲解
Jan 23 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
PHP中include()与require()的区别说明
2017/02/14 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
JavaScript运行机制之事件循环(Event Loop)详解
2014/10/10 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
微信小程序 loading 详解及实例代码
2016/11/09 Javascript
纯JS代码实现隔行变色鼠标移入高亮
2016/11/23 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
vue中父子组件注意事项,传值及slot应用技巧
2018/05/09 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
小程序实现左右来回滚动字幕效果
2018/12/28 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
nodejs文件夹深层复制功能
2019/09/03 NodeJs
vue-axios同时请求多个接口 等所有接口全部加载完成再处理操作
2020/11/09 Javascript
在Python中操作字典之update()方法的使用
2015/05/22 Python
pygame实现雷电游戏雏形开发
2018/11/20 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
2018/12/12 Python
把pandas转换int型为str型的方法
2019/01/29 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
Nike香港官网:Nike HK
2019/03/23 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
大学生求职简历的自我评价
2013/10/21 职场文书
初中英语课后反思
2014/04/25 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
工会2014法制宣传日活动总结
2014/11/01 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python
CSS3实现指纹特效代码
2022/03/17 HTML / CSS