我不知道如何把这个更好,并尝试搜索一些周围,但我真的不确定什么搜索我的情况。
我很不幸地管理着一个非常老的网站,它已经被至少5个网站管理员转手了。
整个网站由几百个页面组成,每个页面由一个。html文件组成;没有控制器逻辑或任何东西。
现在我需要在整个网站中实现几个脚本,我想知道是否有一种快速而肮脏的方法来完成这个任务。
我想封装每个请求通过一种基本的PHP控制器,简单地读取请求的文件,在脚本中需要它,并呈现它与相同的内容和URL,但在关闭</body>
标记之前包含必要的脚本。
不幸的是,我是一个相当新手在这方面,我也害怕允许一些坏的注入从外部来源。实现这一目标的最佳方式是什么?我在linux apache服务器上
有两种方法:
1) PHP Wrapper
按照你的要求,你可以使用你的web服务器重定向所有传入的HTML请求到一个PHP文件,做以下事情:
- 引用HTML文件
- 打开并读取文件到字符串
- 进行更改
- 输出响应 中修改后的内容
如果你使用的是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
。