在PHP包装器中包含HTML文件


Include HTML files in a PHP wrapper

我不知道如何把这个更好,并尝试搜索一些周围,但我真的不确定什么搜索我的情况。

我很不幸地管理着一个非常老的网站,它已经被至少5个网站管理员转手了。

整个网站由几百个页面组成,每个页面由一个。html文件组成;没有控制器逻辑或任何东西。

现在我需要在整个网站中实现几个脚本,我想知道是否有一种快速而肮脏的方法来完成这个任务。

我想封装每个请求通过一种基本的PHP控制器,简单地读取请求的文件,在脚本中需要它,并呈现它与相同的内容和URL,但在关闭</body>标记之前包含必要的脚本。

不幸的是,我是一个相当新手在这方面,我也害怕允许一些坏的注入从外部来源。实现这一目标的最佳方式是什么?我在linux apache服务器上

有两种方法:

1) PHP Wrapper

按照你的要求,你可以使用你的web服务器重定向所有传入的HTML请求到一个PHP文件,做以下事情:

  1. 引用HTML文件
  2. 打开并读取文件到字符串
  3. 进行更改
  4. 输出响应
  5. 中修改后的内容

如果你使用的是Apache httpd这样的服务器,你可以使用mod_redirect来处理请求的URL重定向到你的PHP文件。

这种方法效率有点低,因为每个请求都需要读取和修改HTML内容。下面的编辑文件的方法将会有更高的性能。

2)编辑HTML文件

您可以编写一个脚本来遍历所有的.html文件并以编程方式编辑它们。

这样做的一种实现是打开每个文件并在页首添加一些行,在底部添加一些行。在每个文件的顶部,你可以为你的PHP文件添加一个require():

<? php
    require('path/to/myinclude.php');
?>

</body>标签之前的HTML底部,调用myinclude.php文件中的函数,例如:

....
<?
    my_footer_function();
?>
</body>
</html>

根据您的web服务器,您可以让PHP解释器执行.html扩展名,这样您就不必更改文件扩展名,如果这是您的愿望。

这样,在编辑之后,您可以修改所有文件中my_footer_function()中的所有行为,只需更改一个myinclude.php