用PHP制作静态网站的模板框架(一)


Posted in PHP onOctober 09, 2006

模板能够改善网站的结构。本文阐述如何通过PHP 4的一个新功能和模板类,在由大量静态HTML页面构成的网站中巧妙地运用模板控制页面布局。

提纲:

===================================

分离功能和布局

避免页面元素重复

静态网站的模板框架

===================================

分离功能和布局

首先我们来看看应用模板的两个主要目的:

分离功能(PHP)和布局(HTML)

避免页面元素重复

第一个目的是谈论得最多的目的,它设想的情形是:一组程序员编写用于生成页面内容的PHP脚本,同时另一组设计人员设计HTML和图形以控制页面的最终外观。分离功能和布局的基本思想就是使得这两组人能够各自编写和使用独立的一组文件:程序员只需关心那些只包含PHP代码的文件,无需关心页面的外观;而页面设计人员可以用自己最熟悉的可视化编辑器设计页面布局,无需担心破坏任何嵌入到页面的PHP代码。

如果你曾经看过几个关于PHP模板的教程,那么你应该已经明白模板的工作机制。考虑一个简单的页面局部:页面的上方是页头,左边是导航条,其余部分是内容区域。这种网站可以拥有如下模板文件:

<!-- main.htm -->
<html>
<head><title>模板示例</title></head>
<body>
<table><tr><td>{HEADER}</td></tr>
<tr><td>{LEFTNAV}</td><td>{CONTENT}</td></tr>
</table>
</body></html>

<!-- header.htm -->
<img src="sitelogo.jpg">

<!-- leftnav.htm -->
<br><a href="foo">Foo</a>
<br><a href="bar">Bar</a>

可以看出页面如何由这些模板构造而成:main模板控制着整个页面的布局;header模板和leftnav模板控制着页面的公共元素。花括号“{}”里面的标识符是内容占位符。使用模板最主要的好处在于界面设计者能够按照自己的意愿编辑这些文件,比如设置字体、修改颜色和图形,或者完全地改变页面的布局。界面设计者可以用任何普通HTML编辑器或者可视化工具编辑这些页面,因为这些文件都只包含HTML代码,没有任何PHP代码。

PHP 相关文章推荐
PHP的类 功能齐全的发送邮件类
Oct 09 PHP
第十五节--Zend引擎的发展
Nov 16 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
通过5个php实例细致说明传值与传引用的区别
Aug 08 PHP
PHP删除非空目录的函数代码小结
Feb 28 PHP
php增删改查示例自己写的demo
Sep 04 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
Apr 01 PHP
php目录遍历函数opendir用法实例
Nov 20 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
Jul 27 PHP
php unlink()函数使用教程
Jul 12 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
Php+SqlServer实现分页显示
Oct 09 #PHP
You might like
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP SPL使用方法和他的威力
2013/11/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
php限制ip地址范围的方法
2015/03/31 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
javascript 单例/单体模式(Singleton)
2011/04/07 Javascript
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
Jquery 跨域访问 Lightswitch OData Service的方法
2013/09/11 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
vuejs指令详解
2017/02/07 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
AngularJs 禁止模板缓存的方法
2017/11/28 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序3种位置API的使用方法详解
2019/08/05 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
PyQt5 pyqt多线程操作入门
2018/05/05 Python
python logging模块的使用
2020/09/07 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
2018/12/18 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书
laravel添加角色和模糊搜索功能的实现代码
2021/06/22 PHP