用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内存相关的功能特性详解
Jun 08 PHP
PHP函数addslashes和mysql_real_escape_string的区别
Apr 22 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
详解Window7 下开发php扩展
Dec 31 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
关于laravel模板中生成URL的几种模式总结
Oct 18 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 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
Ajax+PHP 边学边练 之二 实例
2009/11/24 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
2012/02/04 PHP
PHP 读取Postgresql中的数组
2013/04/14 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
phpwind放自动注册方法
2006/12/02 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
js 闭包深入理解与实例分析
2020/03/19 Javascript
vuex的使用步骤
2021/01/06 Vue.js
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python内置函数delattr的具体用法
2017/11/23 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
Pandas:DataFrame对象的基础操作方法
2018/06/07 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python实现人机五子棋
2020/03/25 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
2020/11/10 Python
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
英国二手iPhone、音乐、电影和游戏商店:musicMagpie
2018/10/26 全球购物
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
幼儿园保教管理制度
2014/02/03 职场文书
六年级学生评语
2014/04/22 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
在Django中使用MQTT的方法
2021/05/10 Python