bbs.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


PHP混合SSI进行大型网站复合页面包含


  首页 » 论坛 » Php »
[打印] [收藏] [本帖文本页] [推荐此主题给朋友]

最近站点大量应用了静态页面生成,于是一直在钻研SSI页面包含的问题,发现在对httpd.conf的SSI设置进行变更:
  1. ....
  2. <Directory />
  3.     Options Indexes FollowSymLinks Includes
  4.     AllowOverride None
  5.     AddOutputFilter Includes  .php
  6. </Directory>
  7. ......
复制代码


注意以上的配置中增加了“AddOutputFilter Includes  .php”后,所有的.php程序将支持SSI语句,随即做了个简单测试,首先建立俩文件

文件一
inc.shtml(内容如下:)
  1. <DIV>这是被包含的内容!</DIV></ BR>
复制代码


文件二
test.php
  1. <!--#include virtual="inc.shtml" -->
  2. <?php
  3. echo '<!--#include virtual="inc.shtml" -->'
  4. ?>
复制代码



当执行完test.php后屏幕输出了两行

这是被包含的内容!
这是被包含的内容!


由此可见,在PHP中执行SSI语句是可行的!



几乎所有大型的门户网站的新闻系统中应用到SSI的静态包含技术,如:sohu、163、sina...以.shtml结尾的新闻正文。他的好处就在于网站生成静态页面后做到布局变动统一一致的效果,而传统生成.html的静态文件时确无法包含其它文件(如:网站的头尾文件),造成一次生成,“万古不变”的呆板页面。(请注意,这里说的是布局的变动,而不是改改CSS这么简单的事)


于是应用SSI技术就能很好地解决以下问题:
一、页面高度一致性,由于适用于动静两种页面的复合包含,因此在公共页面布局更新的同时可以保持全站页面风格一致。

二、静态包含的高效性,特别是在多重包含下(如:a.shtml包含b.shtml,b.shtml又包含c.shtml..),仍然非常接近纯静态页面的性能,这点要比模板包含乃至页面缓存的效率都高出许多。在此强烈要求在一般情况下替代模板的include功能。

三、静态包含对搜索引擎的亲和力强,在搜索引擎中.shtml和其它静态文件享受相同待遇

四、相对意义上减轻了程序员与美工之间模板拆分的问题,美工不用再做两套模板(如:一套用作smarty包含,一套用作静态文件包含),一套模板无论动静皆大欢喜,美工随意拆分页面的同时还能降低引起模板系统错误的可能性。



欢迎拍砖!

[ 本帖最后由 bs 于 2007-2-26 20:09 编辑 ]





QUOTE:
由此可见,在PHP中执行SSI语句是可行的!



SSI的意思是server side include,不关PHP的事,只是你前面“告诉”了APACHE也要解析以.php结尾的页面输出的内容而已,也就是APACHE把经过PHP解析后的内容再解析了一次。如果你只是简单的合并输出几个页面,理论上的确是SSI比PHP的INCLUDE快,因为他要解析的东西要少,但每个页面都经过两层解析,速度上就看具体应用了。



没有说关PHP的什么事,复杂的就更要用到了

做技术要实在,不能花在咬文嚼字上

[ 本帖最后由 bs 于 2007-2-27 10:11 编辑 ]


  首页 » 论坛 » Php »
Copyright © 2001-2010 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

GMT+8, 2010-02-09 08:31, Processed in 0.022223 second(s), 7 queries, Gzip enabled.