Как получить phpinfo() переменные из php программно?

Я пытаюсь получить список надежных (согласованных между запросами) списков "скрытых" констант в PHP (как, впрочем, клиент не будет знать об этом в большинстве случаев без взлома).

Некоторые из вещей, которые меня интересуют, следующие:

  • ./configure.
  • Мне также понравится самое первое значение System в phpinfo.
  • Загруженные модули PHP (как показано в разделе Apache)
  • Дата сборки PHP.
  • Зарегистрированные потоки PHP
  • Зарегистрированный перенос сокета потока
  • Зарегистрированные фильтры потока

Как я могу получить либо часть phpinfo, либо получить эти значения в виде обычной строки? Обратите внимание, что не имеет значения, есть ли там, если включена разметка, но я не хочу анализировать phpinfo, поскольку это кажется очень медленным, и, безусловно, есть лучший способ.

Ответ 1

Здесь вы идете:

  • ini_get_all() или get_loaded_extensions() были самыми близкими, которые я мог найти
  • php_uname()
  • apache_get_modules()
  • phpversion() был самым близким, который я мог найти
  • stream_get_wrappers()
  • stream_get_transports()
  • stream_get_filters()

См. также get_defined_constants() и еще несколько.


Как упоминалось в Chacha102, вы также можете использовать функции управления выходом и проанализировать phpinfo():

ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();

Благодаря использованию ob_get_clean() он не испортит другие уровни буферизации вывода, которые вы можете использовать.

Ответ 2

Большинство материалов, доступных из phpinfo(), можно найти в константах. Попробуйте просмотреть:

print_r(get_defined_constants());

Или функции на этой странице: http://us.php.net/manual/en/ref.info.php. Существует множество функций для получения информации об определенных расширениях.

Возможно, стоит обратить внимание на следующие функции:

ini_get() http://us.php.net/manual/en/function.ini-get.php
getenv() http://us.php.net/manual/en/function.getenv.php
get_cfg_var() http://us.php.net/manual/en/function.get-cfg-var.php

Ответ 3

Возможно, я немного опаздываю, но в основном, если вы вызываете оболочку script проблематично на php.exe

php -i

тогда вы можете проанализировать всю необходимую информацию