正如我们所知,对于Web和控制台,使用了不同的PHP ini文件。例如,如果我从控制台脚本运行ini_get('max_execution_time')
,它将返回0
因为控制台脚本通常没有超时。但是,如果我从 web 运行相同的代码,它将返回我们为网站设置的值。
我想从控制台脚本运行以下代码:
ini_get('max_execution_time')
但是,这将返回我值作为0
,因为 PHP 使用不同的 php.ini 文件作为控制台。我想要的是当我运行上面的代码时,我希望它返回从 php 设置的值.ini这应该是用于 web NOT 控制台的。
对于不同的值,我需要 web php 的值.ini 的原因是因为我正在构建控制台脚本,该脚本将检查值并在任何 php.ini 设置不适合 Web 应用程序时通过电子邮件通知我。
仅供参考,我正在使用Laravel框架。
感谢您的帮助。
您可以使用 Web 上的echo php_ini_loaded_file();
来查找 web/apache2 ini 文件的名称。在我的例子中,它是/usr/local/zend/etc/php.ini。
然后,在 CLI 应用程序中,您可以将 ini 文件解析为可用于检索所需数据的数组。
<?php
$config = parse_ini_file('/usr/local/zend/etc/php.ini');
// Ouput of `var_dump($config);`
array (size=118)
'engine' => string '1' (length=1)
'short_open_tag' => string '1' (length=1)
'precision' => string '14' (length=2)
'output_buffering' => string '4096' (length=4)
'zlib.output_compression' => string '' (length=0)
'implicit_flush' => string '' (length=0)
'unserialize_callback_func' => string '' (length=0)
'serialize_precision' => string '-1' (length=2)
'disable_functions' => string '' (length=0)
'disable_classes' => string '' (length=0)
'realpath_cache_size' => string '256k' (length=4)
'zend.enable_gc' => string '1' (length=1)
'expose_php' => string '1' (length=1)
'max_execution_time' => string '500' (length=3)
'max_input_time' => string '60' (length=2)
'memory_limit' => string '256M' (length=4)
'error_reporting' => string '32767' (length=5)
'display_errors' => string '1' (length=1)
'display_startup_errors' => string '1' (length=1)
...
echo $config['max_execution_time']; // 500