# parse_ini_file

(PHP 4, PHP 5, PHP 7, PHP 8)

parse_ini_file — Analiza un fichero de configuración

### Descripción

parse_ini_file(string `$filename`, bool `$process_sections` = `false`, int `$scanner_mode` = INI_SCANNER_NORMAL): array

parse_ini_file() carga el fichero ini especificado en `filename`, y devuelve las configuraciones que hay en él a un array asociativa.

La estructura del ficher0 ini es la misma que la de php.ini.

### Parámetros

`filename`

  El nombre del fichero ini que va a ser analizado.

`process_sections`

  Al establecer el parámetro `process_sections` a `true`, se obtiene un array multidimesional, con los nombres de las secciones y las configuraciones incluidas. El valor por defecto de `process_sections` es `false`

`scanner_mode`

  Puede ser o `INI_SCANNER_NORMAL` (por defecto) o `INI_SCANNER_RAW`. Si `INI_SCANNER_RAW` es proporcionado, los valores de las opciones no serán analizadas.

  A partir de PHP 5.6.1 también se puede especificar como `INI_SCANNER_TYPED`. En este modo, los tipos boolean, null e integer se preservan siempre que sea posible. Los valores de string `"true"`, `"on"` y `"yes"` son convertidos a `true`. `"false"`, `"off"`, `"no"` y `"none"` se consideran como `false`. `"null"` se convierte a `null` en el modo tipificado. También, todos los string numéricos son convertidos al tipo integer fuera es posible.

### Valores devueltos

Las configuraciones son devueltas como un array asociativo si se tiene éxito, y `false` si falla.

### Ejemplos

Ejemplo #1 Contenido de ejemplo.ini

    ; Este es un ejemplo de fichero de configuración
    ; Los comentarios empiezan con ';', como en php.ini

    [primera_sección]
    uno = 1
    cinco = 5
    animal = PÁJARO

    [segunda_sección]
    ruta = "/usr/local/bin"
    URL = "http://www.example.com/~username"

    [tercera_sección]
    phpversion[] = "5.0"
    phpversion[] = "5.1"
    phpversion[] = "5.2"
    phpversion[] = "5.3"

    urls[svn] = "http://svn.php.net"
    urls[git] = "http://git.php.net"

Ejemplo #2 Ejemplo de parse_ini_file()

Las Constantes también se pueden analizar en el fichero ini, por lo que si se define una constante como un valor ini antes de ejecutar parse_ini_file(), también será integrada dentro de los resultados. Sólo los valores ini son evaluados. Por ejemplo:

`<?php
define('PÁJARO', 'Pájaro dodo');
// Analizar sin secciones
$array_ini = parse_ini_file("ejemplo.ini");
print_r($array_ini);
// Analizar con secciones
$array_ini = parse_ini_file("ejemplo.ini", true);
print_r($array_ini);
?>`

El resultado del ejemplo sería algo similar a:

    Array
    (
        [uno] => 1
        [cinco] => 5
        [animal] => Pájaro dodo
        [ruta] => /usr/local/bin
        [URL] => http://www.example.com/~username
        [phpversion] => Array
            (
                [0] => 5.0
                [1] => 5.1
                [2] => 5.2
                [3] => 5.3
            )

        [urls] => Array
            (
                [svn] => http://svn.php.net
                [git] => http://git.php.net
            )

    )
    Array
    (
        [primera_sección] => Array
            (
                [uno] => 1
                [cinco] => 5
                [animal] => Pájaro dodo
            )

        [segunda_sección] => Array
            (
                [ruta] => /usr/local/bin
                [URL] => http://www.example.com/~username
            )

        [tercera_sección] => Array
            (
                [phpversion] => Array
                    (
                        [0] => 5.0
                        [1] => 5.1
                        [2] => 5.2
                        [3] => 5.3
                    )

                [urls] => Array
                    (
                        [svn] => http://svn.php.net
                        [git] => http://git.php.net
                    )

            )

    )

Ejemplo #3 parse_ini_file() analizando un fichero de php.ini

`<?php
// Una sencilla función usada para comparar los resultados de abajo
function síno($expresión)
{
return($expresión ? 'Sí' : 'No');
}
// Obtiene la ruta de php.ini usando la función
// php_ini_loaded_file() disponible a partir de PHP 5.2.4
$ruta_ini = php_ini_loaded_file();
// Analizar php.ini
$ini = parse_ini_file($ruta_ini);
// Imprime y compara los valores, observe que al usar get_cfg_var()
// se obtendrán aquí los mismos resultados de análisis y carga
echo '(analizado) magic_quotes_gpc = ' . síno($ini['magic_quotes_gpc']) . PHP_EOL;
echo '(cargado) magic_quotes_gpc = ' . síno(get_cfg_var('magic_quotes_gpc')) . PHP_EOL;
?>`

El resultado del ejemplo sería algo similar a:

    (parsed) magic_quotes_gpc = Yes
    (loaded) magic_quotes_gpc = Yes

### Notas

> Nota:

> Esta función no tiene nada que ver con el fichero php.ini. Éste es procesado en el momento en el que se ejecuta el script. Esta función se puede usar para leer los ficheros de configuración de sus propias aplicaciones.

> Nota:

> Si un valor en el fichero ini contiene cualquier carácter no alfanumérico, se necesita encerrarlo entre comillas dobles (").

> Nota: Hay palabras reservadas que no se deben usar como claves en los ficheros ini. Éstas incluyen: `null`, `yes`, `no`, `true`, `false`, `on`, `off`, `none`. Los valores `null`, `off`, `no` y `false` resultan en `""`, y los valores `on`, `yes` and `true` resultan en `"1"`, a menos que se utilice el modo `INI_SCANNER_TYPED` (a partir de PHP 5.6.1). Los caracteres `?{}|&~!()^"` no se deben usar en ningún lugar de la clave y tienen un significado especial en el valor.

> Nota:

> Las entradas sin un signo igual son ignoradas. Por ejemplo, "foo" es ignorado, mientras que "bar =" se analiza y se añade con un valor vacío. Por ejemplo, MySQL tiene un ajuste de "no auto-rehash" en my.cnf que no toma ningún valor, siendo así ignorado.

### Ver también

- parse_ini_string() - Analiza una cadena de configuración