You want to get the value of a PHP configuration setting.
Use ini_get():
1 2 |
// find out the include path: $include_path = ini_get('include_path'); |
To get all the configuration variable values in one step, call ini_get_all(). It returns the variables in an associative array, and each array element is itself an associative array.
The second array has three elements: a global value for the setting, a local value, and an access code:
1 2 3 |
// Put all config values in an associative array $vars = ini_get_all(); print_r($vars['date.timezone']); |
This prints:
1 2 3 4 5 6 |
Array ( [global_value] => UTC [local_value] => UTC [access] => 7 ) |
The global_value is the value set from the php.ini file; the local_value is adjusted to account for any changes made in the web server’s configuration file, any relevant .htaccess files, and the current script.
The value of access is a numeric constant representing the places where this value can be altered.
Table 20-1 explains the values for access. Note that the name access is a little misleading in this respect because the value of the setting can always be checked, but not always adjusted.
Table 20-1. Access values
Value | PHP constant | Meaning |
1
2 4 7 |
PHP_INI_USER
PHP_INI_PERDIR PHP_INI_SYSTEM PHP_INI_ALL |
Any script, using ini_set()
Directory level, using .htaccess System level, using php.ini or httpd.conf Everywhere: scripts, directories, and the system |
A value of 6 means the setting can be changed in both the directory and system level, as 2 + 4 = 6.
In practice, there are no variables modifiable only in PHP_INI_USER or PHP_INI_PERDIR, and all variables are modifiable in PHP_INI_SYSTEM, so everything has a value of 4, 6, or 7.
You can also get variables belonging to a specific extension by passing the extension name to ini_get_all():
1 2 |
// return just the session module specific variables $session = ini_get_all('session'); |
By convention, the variables for an extension are prefixed with the extension name and a period. So all the session variables begin with session. and all the PDO variables begin with pdo, for example.
Because ini_get() returns the current value for a configuration directive, if you want to check the original value from the php.ini file, use get_cfg_var():
1 |
$original = get_cfg_var('sendmail_from'); // have we changed our address? |
The value returned by get_cfg_var() is the same as what appears in the global_val ue element of the array returned by ini_get_all().