`
xcgh
  • 浏览: 75751 次
  • 来自: ...
社区版块
存档分类
最新评论

用PHP制作静态网站的模板框架

    博客分类:
  • php
阅读更多
模板能够改善网站的结构。本文阐述如何通过PHP 4的一个新功能和模板类,在由大量静态HTML页面构成的网站中巧妙地运用模板控制页面布局。

 


 


提纲:


===================================


分离功能和布局


 


避免页面元素重复


 


静态网站的模板框架


===================================


 



 


分离功能和布局


 


   首先我们来看看应用模板的两个主要目的:


 




     



  • 分离功能(PHP)和布局(HTML)

     


     


  • 避免页面元素重复

     


     


 


   第一个目的是谈论得最多的目的,它设想的情形是:一组程序员编写用于生成页面内容的PHP脚本,同时另一组设计人员设计HTML和图形以控制页面的最终外观。分离功能和布局的基本思想就是使得这两组人能够各自编写和使用独立的一组文件:程序员只需关心那些只包含PHP代码的文件,无需关心页面的外观;而页面设计人员可以用自己最熟悉的可视化编辑器设计页面布局,无需担心破坏任何嵌入到页面的PHP代码。


 


   如果你曾经看过几个关于PHP模板的教程,那么你应该已经明白模板的工作机制。考虑一个简单的页面局部:页面的上方是页头,左边是导航条,其余部分是内容区域。这种网站可以拥有如下模板文件:


 


 


<!---->



{HEADER}
{LEFTNAV} {CONTENT}








Foo

Bar


 


 


   可以看出页面如何由这些模板构造而成:main模板控制着整个页面的布局;header模板和leftnav模板控制着页面的公共元素。花括号“{}”里面的标识符是内容占位符。使用模板最主要的好处在于界面设计者能够按照自己的意愿编辑这些文件,比如设置字体、修改颜色和图形,或者完全地改变页面的布局。界面设计者可以用任何普通HTML编辑器或者可视化工具编辑这些页面,因为这些文件都只包含HTML代码,没有任何PHP代码。


  PHP代码全部保存到单独的文件中,这个文件也就是由页面URL实际调用的文件。Web服务器通过PHP引擎解析该文件,然后把结果返回给浏览器。一般地,PHP代码总是动态地生成页面内容,比如查询数据库或者执行某种计算等。下面是一个例子:


 


<!---->
// example.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) );

// 此处的PHP代码设置$content使其包含合适的页面内容

$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header');
$tpl->parse('LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main');
$tpl->FastPrint('MAIN');

?>


   这里我们使用的是流行的FastTemplate模板类,但其基本思路对于其他许多模板类来说都一样。首先你实例化一个类,告诉它到哪里去寻找模板文件以及哪一个模板文件与页面的哪部分对应;接下来是生成页面内容,把结果赋予内容的标识符;然后,依次解析各个模板文件,模板类将执行必要的替换操作;最后把解析结果输出到浏览器。


 


   这个文件完全由PHP代码构成,不包含任何HTML代码,这是它最大的优点。现在,PHP程序员可以集中精力编写生成页面内容的代码,而不必为了如何生成HTML去正确地格式化最终页面而担心。


 


   你可以使用这种方法和上面的文件构造出一个完整的网站。如果PHP代码是以URL中的查询字符串为基础生成页面内容,例如http://www.foo.com/example.php?article=099,你可以据此构造出一个完整的杂志网站。


 


   很容易看出采用模板还有第二个好处。如上例所示,页面左边的导航条单独保存为一个文件,我们只需编辑这一个模板文件就可以改变网站所有页面左边的导航条。


避免页面元素重复


 


   “这确实不错”,你也许会想,“我的网站主要就是由大量的静态页面构成。现在我可以从所有页面中删除它们的公共部分,要更新这些公共部分实在太麻烦了。以后我就可以用模板制作出很容易维护的统一页面布局。”但事情并非这么简单,“大量的静态页面”道出了问题的所在。


 


   请考虑上面的例子。这个例子实际上只有一个example.php页面,它之所以能够生成整个网站的所有页面,是因为它利用了URL中的查询字符串从数据库之类的信息源动态地构造出页面。


 


   我们之中的大多数人所运行的网站并不一定都有数据库支持。我们的网站大多数由静态页面构成,然后用PHP在这里、那里加上一些动态功能,比如搜索引擎、反馈表单等。那么,如何在这种网站上应用模板呢?


 


   最简单的方法是为每一个页面复制一份PHP文件,然后在每一个页面中把PHP代码里代表内容的变量设置成合适的页面内容。例如,假设有三个页面,它们分别是主页(home)、关于(about)和产品(product),我们可以用三个文件分别生成它们。这三个文件的内容都类如:


 


<!---->
// home.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) );

$content = "

欢迎访问


http://www.thewebmasters.net/找到,最新的版本号是1.1.0,那里还有一个用于保证该类在PHP 4中正确运行的小补丁。本文下载代码中的类已经经过该补丁的修正。

分享到:
评论

相关推荐

    用PHP制作静态网站的模板框架(一)

    静态网站的模板框架 =================================== 分离功能和布局  首先我们来看看应用模板的两个主要目的: 分离功能(PHP)和布局(HTML) 避免页面元素重复  第一个目的是谈论得最多的目的,它...

    用PHP制作静态网站的模板框架(二)

    PHP代码全部保存到单独的文件中,这个文件也就是由页面URL实际调用的文件。Web服务器通过PHP引擎解析该文件,然后把结果返回给浏览器。一般地,PHP代码总是动态地生成页面内容,比如查询数据库或者执行某种计算等。...

    用PHP制作静态网站的模板框架(三)

    以后我就可以用模板制作出很容易维护的统一页面布局。”但事情并非这么简单,“大量的静态页面”道出了问题的所在。  请考虑上面的例子。这个例子实际上只有一个example.php页面,它之所以能够生成整个网站的所有...

    后台管理系统静态模板

    后台管理系统静态模板

    love 封尘模版框架 v1.2.zip

    利用一个模版要比一个框架要容易的多,这也是我推荐大家使用模版的好处,相比smarty模版的复杂运用,lovefc模版则显得更为方便,它功能不是特别多,但是都很实用,如果你只是想做一个中小型的系统,完全可以利用它制作出你...

    简洁PHP应用框架

    框架主程序简洁轻便,路径解析简单,框架模板为SMARTY,并集各常用函数、分页、图片上传综合处理、数据库表数据导入导出、静态页面生成、基于MemCache的缓存类、基于phpmailer的邮件收发类等类于一体,方便扩展。...

    php轻量型框架v1.0

    目录结构: app:网站系统目录 ---common:网站配置目录 ---tpl:网站模板目录 ---logs:网站日志目录 ---cache:网站缓存目录 ---libs:网站系统文件目录 jsphp:jsphp框架目录 ---tpl:框架模板目录 ---libs:框架...

    php轻量型框架 v1.0.zip

    ---tpl:网站模板目录 ---logs:网站日志目录 ---cache:网站缓存目录 ---libs:网站系统文件目录 jsphp:jsphp框架目录 ---tpl:框架模板目录 ---libs:框架系统文件目录 ---driver:数据库操作类 ---...

    PHP框架PHPLithium.zip

    Lithium 是一个新兴的 PHP 框架,完全构建于 PHP 5.3 之上,充分利用了命名空间、后期静态绑定(late static biding)、闭包(closure)等 5.3 特性。Lithium 的开发人员来自原 CakePHP 的核心成员,其轻量灵活的...

    php轻量型框架 v1.0

    目录结构:app:网站系统目录 ---common:网站配置目录 ---tpl:网站模板目录 ---logs:网站日志目录 ---cache:网站缓存目录 ---libs:网站系统文件目录jsphp:jsphp框架目录 ---tpl:框架模板目录 ---libs...

    CI框架PHP漫画小说二合一CMS网站系统源码

    │ │─system //CI框架目录 │─template //模板目录 │ │─admin //后台模板 │ │─install //系统安装模板 │ │─pc //前台PC端模版 │ │─wap //前台手机模版 │─admin.php //后台入口文件(为了...

    84PHP框架 1.3.0.zip

    84PHP框架是一套便捷、优秀的开源框架。84PHP框架 1.3.0 更新日志:2019-02-04入门指南中新增了权限等部分的内容;修复了在IIS10环境下,自动编译出现权限不足的问题;修复了Db、Page模块说明文档中的错误;修复了...

    响应式简繁双语电子科技设备制造类Pbootcms网站模板 HTML5电子元件网站源码下载(自适应手机端)

    PbootCMS内核开发的网站模板,该模板适用于电子科技设备网站、电子元件网站等企业,当然其他行业也可以做,只需要把文字图片换成其他行业的即可; 自适应,同一个后台,数据即时同步,简单适用!附带测试数据! 友好...

    phpWeChat微信公众号开发框架

    phpWeChat 微信+网站开发框架功能亮点: 1、100%开源,没有任何加密文件 phpWeChat核心文件100%开源,没有任何加密文件,开发者可以放心使用而无需担心留有后门程序等。 2、程序轻量级,一天读完所有代码 核心框架...

    XbPhp开发框架 v1.4.5.rar

    XbPhp框架是一个结合了thinkphp、cakephp和smatry等不同写法的php开源框架。  1.实现智能化目录加载,无需定义目录  2.实现定时缓存(减少查询次数,静态缓存数据,压缩缓存数据,提高执行效率)  3.自带了小型模版...

    CI框架学习概要总结

    这是通过学习了后盾网16个视频教程之后,进行的总结。另外还有两个前期框架搭配的总结。下面会列出视频的名称。其实CI框架很简单,看过视频之后就...16. CI框架学习-实例操作隐藏index.php、伪静态、缓存、开启生产模式

    brophp最小巧的轻量级PHP框架

    6.采用了目前业界最著名的PHP模板引擎Smarty, 对于Smarty熟悉的程序员具有很好的模板开发优势。 7.使用Memcached对SQL和session进行缓存,使用Smarty缓存技术进行页面静态化,提升效率,减少运行消耗。 8.框架提供...

    phpWeChat网站+微信公共号开发框架 v1.1.6 微信公众平台

    phpWeChat微信+网站开发框架功能亮点: 1、100%开源,没有任何加密文件 phpWeChat核心文件100%开源,没有任何加密文件,开发者可以放心使用而无需担心留有后门程序等。 2、程序轻量级,一天读完所有代码 核心框架...

    hugonette:使用Hugo或类似工具创建的用于静态网站PHP微框架

    如果您需要PHP微框架来轻松激活静态站点,请尝试Hugonette。 是用于准备页面设计和功能的最受欢迎的工具之一。它的优点是对变更的响应非常快。只需将浏览器设置为localhost:1313,然后将更改保存到项目中的任何...

Global site tag (gtag.js) - Google Analytics