在每个站点的基础上设置 PHP 包含路径?

2022-08-30 21:05:07

我可以在以下位置设置 PHP 包含路径:php.ini

include_path = /path/to/site/includes/

但是其他网站也会受到影响,所以这并不好。

我可以在每个文件的开头设置PHP包含:

$path = '/path/to/site/includes/';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);

但这似乎是不好的做法,而且把事情搞得一团糟。

因此,我可以将其包含在内,然后将其包含在每个文件中:

include 'includes/config.php';

include '../includes/config.php';

这就是我现在正在做的,但是 包含路径将根据包含的内容而变化。config.php

有没有更好的方法?这重要吗?


答案 1

如果您使用apache作为Web服务器,则可以使用.htaccess文件覆盖(如果您允许)设置。有关详细信息,请参阅 PHP 手册

基本上,您在您的网站根目录中放置了一个名为.htaccess的文件,其中包含一些PHP值。如果您将Apache配置为允许覆盖,则此站点将使用PHP配置中的所有值,以及您在.htaccess文件中指定的值。ini

只能与 类型指令一起使用PHP_INI_ALLPHP_INI_PERDIR

如我链接的页面所述。如果单击到完整列表,则会看到包含路径是一个指令。PHP_INI_ALL


答案 2

埃里克·范·布拉克尔(Erik Van Brakel)给出了,恕我直言,这是最好的答案之一。

此外,如果您使用的是Apache和虚拟主机,则可以直接在其中设置包含。使用此方法,您不必记得在 .htaccess 中保留php_admin命令。


推荐