PHP Error Handling Reading Configuration Variables - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Error Handling Reading Configuration Variables - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Monday, July 1, 2019

PHP Error Handling Reading Configuration Variables

PHP Error Handling


Reading Configuration Variables

Problem

You want to get the value of a PHP configuration setting.

Solution

Use ini_get():

       // find out the include path:
       $include_path = ini_get('include_path');

Discussion

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:

       // Put all config values in an associative array
       $vars = ini_get_all();
       print_r($vars['date.timezone']);

This prints:

       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.

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 Access values

Value    PHP constant               Meaning                                                                                                                   
1            PHP_INI_USER          Any script, using ini_set()
2           PHP_INI_PERDIR      Directory level, using .htaccess
4           PHP_INI_SYSTEM     System level, using php.ini or httpd.conf
7           PHP_INI_ALL              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():

       // 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():

       $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_value element of the array returned by ini_get_all().


No comments:

Post a Comment

Post Top Ad