用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实现mysql数据库备份类
Mar 20 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
PHP session有效期session.gc_maxlifetime
Apr 20 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
Apr 13 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
PHP不用递归实现无限分级的例子分享
Apr 18 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
Feb 15 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代码把全角数字转为半角数字
2007/12/10 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
yii用户注册表单验证实例
2015/12/26 PHP
php多线程并发实现方法
2016/09/30 PHP
php字符串操作常见问题小结
2016/10/11 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
PHP扩展类型及安装方式解析
2020/04/27 PHP
JS时间选择器 兼容IE6,7,8,9
2012/06/26 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
iframe实用操作锦集
2014/04/22 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
微信小程序实现滑动操作代码
2020/04/23 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
Python 列表(List) 的三种遍历方法实例 详解
2017/04/15 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
雷锋精神演讲稿
2014/05/13 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
总经理助理岗位职责
2015/01/31 职场文书
跑吧孩子观后感
2015/06/10 职场文书
mysql 排序失效
2022/05/20 MySQL