PHP:可以在默认的php.ini文件中设置常量

Rob*_*y75 5 php apache

我希望有一个可用于服务器上所有PHP脚本的常量(字符串).

根据http://php.net/manual/en/function.parse-ini-file.php,如果你解析一个额外的.ini文件,这很容易,但我不想解析额外的文件,我想要在全局php.ini中设置我的常量,而不必解析脚本中的任何内容.(事实上​​,这是重点,因为我需要常量才能找到包含/解析/等的东西:当我知道这个额外的.ini文件将在哪里时,我不再需要它了!)

只是在php.ini中发明一个新的常量然后尝试用ini_get()来访问它不起作用,还有其他方法吗?

我自己编译Apache和PHP,所以我也可以在编译时设置常量和/或使用Apache常量(如果有必要的话).

Tre*_*non 7

您可以auto_prepend_file在PHP ini中使用PHP 脚本来执行此操作,因为它将在您的任何用户域脚本之前运行:

指定在主文件之前自动解析的文件的名称.包含该文件就像使用require函数调用它一样,因此使用了include_path.

所以你可以添加一个ini行:

auto_prepend_file="/home/user/script.php"
Run Code Online (Sandbox Code Playgroud)

在/home/user/script.php中:

define('CONSTANT_NAME', 'your nice value here');
Run Code Online (Sandbox Code Playgroud)

现在,在PHP脚本中,您可以CONSTANT_NAME从所有PHP脚本中的任何位置访问.

我在使用基于mod_rewrite的群发虚拟主机的登台服务器上使用此技术,因此我可以为我的PHP脚本提供准确的文档根目录.我之前博文中讨论过这个问题.