从控制台脚本获取 Web php.ini 文件的值



正如我们所知,对于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

最新更新