用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 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
网页上facebook分享功能具体实现
Jan 26 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
php中magic_quotes_gpc对unserialize的影响分析
Dec 16 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
PHP将URL转换成短网址的算法分享
Sep 13 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 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
Php+SqlServer实现分页显示
Oct 09 #PHP
You might like
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
学习php分页代码实例
2013/10/24 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
js查找节点的方法小结
2015/01/13 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
Python基础之函数原理与应用实例详解
2020/01/03 Python
pandas数据拼接的实现示例
2020/04/16 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
SQL面试题
2013/04/30 面试题
兼职学生的自我评价
2013/11/24 职场文书
学习考察心得体会
2014/09/04 职场文书
团组织推优材料
2014/12/29 职场文书
平遥古城导游词
2015/02/03 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
MySQL的安装与配置详细教程
2021/06/26 MySQL
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android