好吧,这听起来有点疯狂,但请耐心等待一分钟。
我在一个网站上工作,该网站的标准是使用 SSI 来包含页眉、页脚和菜单。包含的文件使用 SSI 条件来处理不同的浏览器,一些 #include 嵌套,一些 #set/#if 技巧来突出显示菜单中的当前页面。换句话说,它不仅仅是 SSI 中的#include 指令。
我敢肯定有些人可能会反对美学,但对于静态 HTML,它实际上工作得很好。
现在,问题是:我只想从我的 PHP 脚本中“#include”相同的 SSI 解析的页眉和页脚 html 文件,从而避免代码重复并仍然保持网站的统一外观。如果 PHP 在通常的 mod_php 环境中运行,我将能够通过使用 PHP 的 virtual() 函数来做到这一点。不幸的是,该站点正在使用 FastCGI/suexec 来运行 PHP(这样每个 VirtualHost 都可以作为不同的用户运行),这会破坏 virtual()。
我一直在使用我用 PHP 编写的相当简单的 SSI 解析器(它处理 #includes 和一些非常简单的 #if 语句),但我想要一个更通用的解决方案。所以,在我发疯并编写一些可能有问题的、更完整的 SSI 解析器之前,有人知道用 PHP 编写的完整 SSI 解析器吗?当然,我也愿意接受在我概述的限制条件下工作的其他解决方案。
非常感谢您的宝贵时间。
最佳答案
看看 ESI:http://en.wikipedia.org/wiki/Edge_Side_Includes
您可以创建一个 PHP 代理来处理它们,它是 Symfony2 中的 HttpCache:https://github.com/fabpot/symfony/blob/master/src/Symfony/Component/HttpKernel/HttpCache/Esi.php
或者使用像 Varnish 这样的 HTTP 代理,比 Symfony2 性能更好...
关于php - 用 PHP 编写的 SSI 解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952725/