Arquivos .ini: processando arquivos de configuração com PHP

Um formato de arquivo muito usado para armazenar diretrizes de configuração são os Arquivos .INI, muito comum em plataformas Windows.

Normalmente são usados em sistemas desktop, mas é possível usá-lo para qualqquer tipo de aplicação. O PHP possui uma função nativa destinada ao processamento desse tipo de arquivo.

Antes de tudo, é bom entender a formatação de um arquivo INI. O artigo sobre arquivos INI da Wikipedia explica muito bem essa formatação. Além disso, se você está lendo este post é porque tem familiaridade com o PHP e, consequentemente, com o arquivo php.ini, o arquivo de configuração do PHP, que é um arquivo INI.

Vamos considerar o arquivo INI abaixo, nomeado como config.ini.

; comentário da seção 1
[section 1]
config1 = "valor 1"

; comentário da seção 2
[section 2]
config2 = "valor 2"

Usaremos a função parse_ini_file, do PHP, para processarmos esse arquivo.

O protótipo da função é:

array parse_ini_file ( string $filename [, bool $process_sections = false]);

O primeiro parâmetro é o nome do arquivo a ser processado. O segundo, opcional, define se devem ser processadas as seções dos arquivos. O padrão é false. Caso passe-se o valor true, o array de retorno será multidimensional, sendo cada dimensão correspondente a cada seção do arquivo .ini.

Isso ficará mais claro ao rodarmos este script:

1
2
3
4
5
$config = parse_ini_file( 'config.ini' );
print_r( $config );
 
$configWithSections = parse_ini_file( 'config.ini', true );
print_r( $configWithSections );

A saída é:

Array
(
    [config1] => valor 1
    [config2] => valor 2
)
Array
(
    [section 1] => Array
        (
            [config1] => valor 1
        )

    [section 2] => Array
        (
            [config2] => valor 2
        )

)

O primeiro print_r exibe o array unidimensional, com todas as seções numa única dimensão do array. O segundo print_r exibe o array multidimensional, resultante do processamento que leva em conta as seções do arquivo .ini.

Com isso fica simples criar arquivos de inicialização que buscam configurações básicas em arquivos .ini.

Porém, tome cuidado ao usar arquivos .ini com informações sensíveis, como configurações de acesso a bancos de dados. Arquivos .ini podem ser acessados via URL, sendo possível visualizar seu conteúdo pelo navegador. Logo, opte por manter um arquivo ini fora do diretório público de sua aplicação (geralmente o public_html).

 

The following two tabs change content below.
Graduado em Ciência da Computação, pela Universidade Federal do Paraná (UFPR), é desenvolvedor de software desde 2008, com foco em Desenvolvimento Web com PHP.