PHP混合SSI进行复合页面包含调用的方法

2016-11-22 09:15:41
SSI页面包含的问题,在对httpd conf的SSI设置进行变更:CODE: <Directory >Options Indexes FollowSymLinks IncludesAllowOverride
SSI页面包含的问题,在对httpd.conf的SSI设置进行变更:

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

文件一
inc.shtml(内容如下:)
CODE:<DIV>这是被包含的内容!</DIV></ BR>
文件二
test.php
CODE:<!--#include virtual="inc.shtml" -->
<?php
echo '<!--#include virtual="inc.shtml" -->'
?>

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

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


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

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


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

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

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

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

相关词搜索:页面 方法

上一篇:PHP如何通过CURL上传文件
下一篇:PHP二维数组排序的3种方法和自定义函数分享