在PHP包装器中包含HTML文件

时间:2015-06-06 02:53:51

标签: php html model-view-controller routing

我不知道如何把它变得更好并试着搜索一下但是我不确定要搜索什么来搜索我的情况。

我处理一个非常古老的网站的不幸情况,已由至少5位网站管理员传递。

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

现在我需要在整个网站上全局实现几个脚本,我想知道是否有一种快速而肮脏的方法来实现这一目标。

我正在考虑通过一种简单的PHP控制器封装每个请求,该控制器只读取所请求的文件,在脚本中需要它并使用相同的内容和URL呈现它,但在结束之前包含必要的scrpts { {1}}标记。

不幸的是,我在这方面相当新手,而且我也害怕从外部来源注入一些不好的注意事项。实现这样的目标的最佳方法是什么?我在linux apache服务器上。

1 个答案:

答案 0 :(得分:0)

以下是两种方法:

1)PHP Wrapper

根据您的要求,您可以使用Web服务器将所有传入的HTML请求重定向到执行以下操作的PHP文件:

  1. 引用HTML文件
  2. 打开并将文件读入字符串
  3. 进行更改
  4. 在响应中输出修改后的内容
  5. 如果您使用的是像Apache httpd这样的服务器,则可以使用mod_redirect来处理将请求的URL重定向到PHP文件。

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

    2)编辑HTML文件

    您可以编写脚本来浏览所有.html文件并以编程方式对其进行编辑。

    执行此操作的一个实现是打开每个文件并在tome中添加一些行,在底部附近添加一些其他行。在每个文件的顶部,您可以为PHP文件添加require()

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

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

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

    根据您的网络服务器,您可以为.html扩展程序执行PHP解释程序,这样您就不必更改文件扩展名,如果您愿意的话。

    这样,在完成此修改后,您只需更改一个my_footer_function()即可修改所有文件中myinclude.php的所有行为。