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


PHP: possible to set constants in default php.ini file

我想要一个常量(一个字符串),可用于服务器上的所有PHP脚本。

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

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

我自己编译Apache和PHP,所以我也可以在编译时设置常量和/或在必要时使用Apache常量。

您可以在 PHP

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

指定在 主文件。包含该文件,就好像它是使用require调用的一样 函数,因此使用include_path。

因此,您可以添加如下所示的ini行:

auto_prepend_file="/home/user/script.php"

在/home/user/script.php:

define('CONSTANT_NAME', 'your nice value here');
现在,在您的 PHP 脚本中,

您可以从任何您喜欢的地方访问CONSTANT_NAME,因为它在所有 PHP 脚本中都可用。

我在使用基于mod_rewrite的大规模虚拟主机的暂存服务器上使用此技术,因此我可以为我的 PHP 脚本提供准确的文档根目录。我之前在一篇博客文章中讨论过这个问题。

很简单。创建一个文件 xxx.php在其中定义常量并将该文件添加到 php.ini 中的全局include_path中。我想补充一点,保留这种全局常量或变量不是一种推荐的工作方式,因为您可能会忘记常量来自哪里,并且不会使您的应用程序对其他开发人员非常便携和明确。

从你所说的,我想你会发现 _SERVER 美元已经有类似的东西了,特别是"DOCUMENT_ROOT"。