PHP's ini_get_all functionPHP's ini_get_all function

Posted May 18th, 2009 in PHP

PHP has a large number of configuration options which can be set in the php.ini file, Apache virtualhost settings, .htaccess and with the ini_set function. This post looks at the ini_get_all function which returns an array containing all the possible configuration options, what their global and local script value are and where they can be modified.

Sample code:

$options = ini_get_all();
print_r($options);

Example output:

Array
(
    [allow_call_time_pass_reference] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 6
        )

    [allow_url_fopen] => Array
        (
            [global_value] => 1
            [local_value] => 1
            [access] => 4
        )

    ... more configuration options ...

    [zlib.output_handler] => Array
        (
            [global_value] => 
            [local_value] => 
            [access] => 7
        )

)

Accessing the values

The associative array that is returned contains a key name which is the configuration option name with a sub-array containing the keys 'global_value', 'local_value' and 'access'. If you wanted to find out the local value for 'allow_url_fopen' for example, you could do something like this:

if($options['allow_url_fopen']['local_value'] == 1) {
    // do something
}
else {
    // do something else
}

Of course, you could also do the above using ini_get like this if all you needed was the local value:

if(ini_get('allow_url_fopen') == 1) {
    // do something
}
else {
    // do something else
}

Global value vs local value

The global_value contains the value that is set in the php.ini file. The local_value contains the modified value (if modified) in the <virtualhost>, .htaccess file or ini_set().

Access

Access uses the following PHP constants:

PHP_INI_USER 1 Entry can be set in user scripts
PHP_INI_PERDIR 2 Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM 4 Entry can be set in php.ini or httpd.conf
PHP_INI_ALL 7 Entry can be set anywhere

The value can also be 6 i.e. PHP_INI_PERDIR + PHP_INI_SYSTEM.

Related posts:

Share or Bookmark

Share or Bookmark this page using the following services. You will need to have an account with the selected service in order to post links or bookmark this page.

Subscribe or Follow

Subscribe via RSS or email, or follow me on Facebook or Twitter below. The RSS icon takes you through to Feedburner where you can select the service or application to use.

Comments

blog comments powered by Disqus