用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日历[测试通过]
Mar 27 PHP
PHP中用正则表达式清除字符串的空白
Jan 17 PHP
ajax 的post方法实例(带循环)
Jul 04 PHP
php通过COM类调用组件的实现代码
Jan 11 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
php封装好的人民币数值转中文大写类
Dec 20 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
PHP简单装饰器模式实现与用法示例
Jun 22 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
php使用 readfile() 函数设置文件大小大小的方法
Aug 11 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
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
PHP中散列密码的安全性分析
2019/07/26 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
详解Vue的七种传值方式
2021/02/08 Vue.js
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python中的defaultdict与__missing__()使用介绍
2018/02/03 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python 面试中 8 个必考问题
2018/11/16 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
索桥的故事教学反思
2014/02/06 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
解析MySQL索引的作用
2022/03/03 MySQL