Как получить 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
тогда вы можете проанализировать всю необходимую информацию