Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get phpinfo() variables from php programmatically?

I am attempting to get a list of dependable(consistent across requests) list of "hidden" constants in PHP(as in, the client-side won't know about it in most cases without hacking).

Some of the things I am interested in is the following:

  1. ./configure options.
  2. I would also like the very first System value in phpinfo.
  3. The loaded PHP modules(as shown in the Apache section)
  4. The build date of PHP.
  5. Registered PHP streams
  6. Registered stream socket transports
  7. Registered stream filters

How can I get either just a portion of the phpinfo or get these values as a regular string? Note that it doesn't matter if there if markup included, but I don't want to parse the phpinfo as that just seems really slow and surely there is a better way..

like image 729
Earlz Avatar asked Jan 15 '10 03:01

Earlz


People also ask

What is Phpinfo () function?

Because every system is setup differently, phpinfo() is commonly used to check configuration settings and for available predefined variables on a given system. phpinfo() is also a valuable debugging tool as it contains all EGPCS (Environment, GET, POST, Cookie, Server) data.

What does Phpinfo return?

An Introduction to the phpinfo() Function. phpinfo() is a PHP function or a snippet of code that takes in one or more parameters and returns a value. Running phpinfo() will display information regarding your site's PHP configuration, including: The current version of PHP your site is running.


2 Answers

Here you go:

  1. ini_get_all() or get_loaded_extensions() were the closest I could find
  2. php_uname()
  3. apache_get_modules()
  4. phpversion() was the closest I could find
  5. stream_get_wrappers()
  6. stream_get_transports()
  7. stream_get_filters()

See also get_defined_constants() and some more.


As Chacha102 mentioned you can also use output control functions and parse the phpinfo():

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

Due to the use of ob_get_clean() it won't mess up other output buffering levels you may be using.

like image 104
Alix Axel Avatar answered Oct 13 '22 14:10

Alix Axel


Most of the stuff available from phpinfo() can be found in constants. Try looking through:

print_r(get_defined_constants());

Or the functions on this page: http://us.php.net/manual/en/ref.info.php. There are tons of functions to get information about specific extensions.

The following functions might be worth looking at:

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

like image 44
Tyler Carter Avatar answered Oct 13 '22 12:10

Tyler Carter