PHP Files Reading Configuration Files - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Files Reading Configuration Files - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Wednesday, July 10, 2019

PHP Files Reading Configuration Files

PHP Files


Reading Configuration Files

Problem

You want to use configuration files to initialize settings in your programs.

Solution

Use parse_ini_file():

       $config = parse_ini_file('/etc/myapp.ini');

Discussion

The function parse_ini_file() reads configuration files structured like PHP’s main php.ini file. Instead of applying the settings in the configuration file to PHP’s configuration, however, parse_ini_file() returns the values from the file in an array.

For example, when parse_ini_file() is given a file with these contents:

       ; physical features
       eyes=brown
       hair=brown
       glasses=yes

       ; other features
       name=Susannah
       likes=monkeys,ice cream,reading

the array it returns is:

       Array
       (
              [eyes] => brown
              [hair] => brown
              [glasses] => 1
              [name] => Susannah
              [likes] => monkeys,ice cream,reading
       )

Blank lines and lines that begin with ; in the configuration file are ignored. Other lines with name=value pairs are put into an array with the name as the key and the value, appropriately, as the value. Words such as on and yes as values are returned as 1, and words such as off and no are returned as the empty string.

To parse sections from the configuration file, pass 1 as a second argument to parse_ini_file(). Sections are set off by words in square brackets in the file:

       [physical]
       eyes=brown
       hair=brown
       glasses=yes

       [other]
       name=Susannah
       likes=monkeys,ice cream,reading

If this file is in /etc/myapp.ini, then:

       $conf = parse_ini_file('/etc/myapp.ini',1);

puts the array in $conf:

       Array
       (
              [physical] => Array
                     (
                            [eyes] => brown
                            [hair] => brown
                            [glasses] => 1
                     )

              [other] => Array
                     (
                            [name] => Susannah
                            [likes] => monkeys,ice cream,reading
                     )
       )

Another approach to configuration is to make your configuration file a valid PHP file that you load with require instead of parse_ini_file(). If the file config.php contains:

       <?php
       // physical features
       $eyes = 'brown';
       $hair = 'brown';
       $glasses = 'yes';

       // other features
       $name = 'Susannah';
       $likes = array('monkeys','ice cream','reading');

you can set the variables $eyes, $hair, $glasses, $name, and $likes with a simple require 'config.php';.

The configuration file loaded by require needs to be valid PHP—including the <?php start tag. The variables named in config.php are set explicitly, not inside an array, as in parse_ini_file(). For simple configuration files, this technique may not be worth the extra attention to syntax, but it is useful for embedding logic in the configuration file, such as this statement:

       $time_of_day = (date('a') == 'am') ? 'early' : 'late';

No comments:

Post a Comment

Post Top Ad