我想在服务器的每个执行中自动包含一个 PHP 脚本,我希望通过 PHP ini、设置或能够在 php 中编写一个简单的扩展并包含我的 php 脚本。
3 回答
您可以auto_prepend_file
在文件中设置指令php.ini
:
如果运行 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 在网站的根级别设置附加/前置文件,但又希望特定子目录不执行附加或前置操作,这可能很有用。您将在该子目录中创建一个新的 .htaccess 文件,如上所述将它们设置为 none。
来源:http ://www.electrictoolbox.com/php-automatically-append-prepend/
如果您在 Apache 上并且可以使用,另一种解决方案是使用.htaccess
. 我添加一行:
php_value include_path "/var/www/mysite.com/config"
然后在我的 PHP 文件中,我可以包含
include_once('someconfig.php');
看起来在/var/www/mysite.com/config/
. 诚然,我在不知道自动前置解决方案的情况下完成了这项工作——它看起来更清洁、更高效。