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

本文探讨了在PHP中创建静态网站模板框架的问题,指出当大量静态页面需要维护时,传统的做法可能导致代码重复和维护困难。通过展示一个简单的PHP模板系统示例,作者揭示了如何为每个页面复制PHP文件并设置内容变量,同时指出了这种方法的三个主要问题:代码冗余、PHP与HTML混合以及内容变量管理复杂。为了解决这些问题,文章提出了将PHP代码与HTML内容分离的策略,以提高代码可维护性和组织性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

更新时间:2006年10月09日 00:00:00   作者:

避免页面元素重复

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

请考虑上面的例子。这个例子实际上只有一个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 = "

欢迎访问

demo.jpg

希望你能够喜欢本网站

";

$tpl->assign('CONTENT', $content);

$tpl->parse('HEADER', 'header');

$tpl->parse('LEFTNAV', 'leftnav');

$tpl->parse('MAIN', 'main');

$tpl->FastPrint('MAIN');

?>

显然,这种方法有三个问题:我们必须为每一个页面复制这些复杂的、牵涉到模板的PHP代码,这与重复公共页面元素一样使得页面难以维护;现在文件又混合了HTML和PHP代码;为内容变量赋值将变得非常困难,因为我们必须处理好大量的特殊字符。

解决这个问题的关键就在于分离PHP代码和HTML内容,虽然我们不能从文件中删除所有的HTML内容,但可以移出绝大多数PHP代码。

相关文章

1a1b05c64693fbf380aa1344a7812747.png

这段时间做数据统计,产品那边要求数据能按高到低排序,想了很多方法,都不行。最后找到PHP的array_multisort()方法。虽然实现了效果,但对这个方法还是半董半董2012-05-05

4f55910a645b073bc4fc65dc10dc14bd.png

用PHP读注册表...2006-10-10

0ea3c7666119d5615e582f823fb3fad6.png

这些是写给初级PHP程序员或者入门不久的同学的,老鸟可以飘过,欢迎补充和评论;接受合理意见与批评2013-07-07

4f96a78db829b1556ff16de21e013c7a.png

PHP 高手之路(三)...2006-10-10

8cc1031babc6aff2319f1c6af8544aa0.png

用函数读出数据表内容放入二维数组...2006-10-10

0c932a99bb7b6f23c937db507070cc7b.png

php访问查询mysql数据的三种方法...2006-10-10

cca732bf65a93ed2ec0ac80c638460fe.png

今天这篇文章详细介绍如何删除数组中的头部元素和尾部元素,还有任意数组元素,需要的朋友可以参考下2017-04-04

2d9f31f2af7b675a3d153d2b7f1035a7.png

包含adodb类库文件daodb插入、更新与删除数据2009-03-03

b452cee8ec5cd9e58ab98eba17281e59.png

PHP 和 MySQL 开发的 8 个技巧...2006-10-10

f4838ec7e2d4da28e0b57d4e852dadd4.png

来自PHP.NET的入门教程...2006-10-10

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值