PHP自动包含

时间:2012-12-26 00:17:15

标签: php

我想在服务器的每次执行中自动包含一个PHP脚本,我正在通过PHP ini,通过设置或能够在php中编写一个简单的扩展并包含我的PHP脚本。

3 个答案:

答案 0 :(得分:18)

您可以在auto_prepend_file文件中设置php.ini指令:

http://php.net/manual/en/ini.core.php#ini.auto-prepend-file

答案 1 :(得分:4)

如果运行Apache并且可以访问.htaccess,您可以执行以下操作,否则请查看@ Lock的答案

prepend.php:
<?php
echo "<p>this is the prepended file</p>\n";

main.php:
<?php
echo "<p>this is the main file</p>\n";

append.php:
<?php
echo "<p>this is the appended file</p>\n";

并在前面添加prepend.php并使用下面的说明附加append.php,当调用main.php时,将从脚本输出以下内容:

<p>this is the prepended file</p>
<p>this is the main file</p>
<p>this is the appended file</p>

并在前面添加prepend.php并使用下面的说明附加append.php,当调用main.php时,将从脚本输出以下内容:

<p>this is the prepended file</p>
<p>this is the main file</p>
<p>this is the appended file</p>

预先添加脚本

要预先添加一个文件以便在主脚本之前解析它,将以下设置添加到.htaccess文件,php.ini(当然会影响所有网站)或配置:

php_value auto_prepend_file prepend.php

不需要包含路径,但如果不包含,那么它将使用包含路径来查找它。如果在脚本所在的包含路径或目录中没有此文件的副本,则可能会导致出现“警告:未知:未能打开流:第0行未知此类文件或目录”之类的错误。所以最好拥有前置文件的完整路径。 附加脚本

这与添加脚本几乎相同,并且适用相同的注释。附加文件的方法如下:

php_value auto_append_file append.php

覆盖设置,以便不添加任何内容或附加

如果需要覆盖现有的auto_append_file或auto_prepend_file设置,可以通过将值设置为“none”来执行此操作:

php_value auto_prepend_file none
php_value auto_append_file none

如果您希望.htaccess在网站的根级别设置append / prepend文件,但希望特定的子目录不执行追加或前置,则此功能非常有用。您将在该子目录中创建一个新的.htaccess文件,如上所述将它们设置为none。

来源:http://www.electrictoolbox.com/php-automatically-append-prepend/

答案 2 :(得分:3)

另一个解决方案,如果您使用的是Apache,那么可以使用.htaccess。我添加一行:

php_value include_path "/var/www/mysite.com/config"

然后在我的PHP文件中,我可以包含

include_once('someconfig.php');

查看/var/www/mysite.com/config/。不可否认,我在不知道自动前置解决方案的情况下做到了这一点 - 它看起来更清晰,更有效。