Funciones del Sistema de Archivos
PHP Manual

parse_ini_file

(PHP 4, PHP 5)

parse_ini_fileAnaliza un archivo de configuración

Descripción

array parse_ini_file ( string $filename [, bool $process_sections = false [, int $scanner_mode = INI_SCANNER_NORMAL ]] )

parse_ini_file() carga el archivo ini especificado en filename, y devulve las configuraciones que hay en él a una matriz asociativa.

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

Parámetros

filename

El nombre de archivo del archivo ini que va a ser analizado.

process_sections

Al establecer el parámetro process_sections a TRUE, se obtiene una matriz 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.

Valores devueltos

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

Historial de cambios

Versión Descripción
5.3.0 Añadido el parámetro opcional scanner_mode. Las comillas simples ahora pueden usarse para las asignaciones de variables. Los signos de número (#) ya no se pueden usar como comentarios y si se usan se lanzará una advertencia de tipo obsoleto.
5.2.7 Cuando sucede un error de sintaxis, esta función devolverá FALSE en vez de un array vacío.
5.2.4 Las claves y los nombres de las secciones consisten en números que ahora se evalúan como integers de PHP, así los números que comiencen por 0 son evaluados como octales y los números que comiencen por 0x son evaluados como hexadecimales.
5.0.0 Los valores encerrados entre comillas dobles pueden contener nuevas líneas.
4.2.1 Esta función ahora está influida por el safe mode y open_basedir.

Ejemplos

Ejemplo #1 Contenido de ejemplo.ini

; Este es un ejemplo de archivo 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"

Ejemplo #2 Ejemplo de parse_ini_file()

Las Constantes también se pueden analizar en el archivo 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
$matriz_ini parse_ini_file("ejemplo.ini");
print_r($matriz_ini);

// Analizar con secciones
$matriz_ini parse_ini_file("ejemplo.ini"true);
print_r($matriz_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
        )

)
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
                )

        )

)

Ejemplo #3 parse_ini_file() analizando un archivo 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 archivo php.ini. Éste es procesado en el momento en el que se ejecuta el script. Esta función se puede usar para leer los archivos de configuración de sus propias aplicaciones.

Nota:

Si un valor en el archivo 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 archivos ini. Éstas incluyen: null, yes, no, true, false, on, off, none. Los valores null, no y false resultan en "", yes y true resultan en "1". Los caracteres ?{}|&~![()^" no se deben usar en ningún lugar de la clave y tienen un significado especial en el valor.

Ver también


Funciones del Sistema de Archivos
PHP Manual