用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
PHP中使用gettext来支持多语言的方法
May 02 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
PHP带节点操作的无限分类实现方法详解
Nov 09 PHP
PHP环境搭建(php+Apache+mysql)
Nov 14 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
搜索附近的人PHP实现代码
Feb 11 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 PHP
基于PHP实现用户在线状态检测
Nov 10 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程序中防止盗链
2008/04/09 PHP
PHP Reflection API详解
2015/05/12 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
基于JQuery实现CheckBox全选全不选
2011/06/27 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
JS 操作符整理[推荐收藏]
2011/11/15 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
2012/06/11 Javascript
javascript-表格排序(降序/反序)实现介绍(附图)
2013/05/30 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
jquery获得keycode的示例代码
2013/12/30 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
Javascript中parseInt的正确使用方式
2018/10/17 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
[54:27]TNC vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python查询mysql中文乱码问题
2014/11/09 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
Auguste The Label官网:澳大利亚一家精品女装时尚品牌
2020/06/14 全球购物
总务岗位职责
2013/11/19 职场文书
大学毕业感言200字
2014/03/09 职场文书
监察建议书范文
2014/03/12 职场文书
教师一岗双责责任书
2014/04/16 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL
SQL Server表分区删除详情
2021/10/16 SQL Server