PHP: Ler o conteúdo de arquivos INI (parsing)

Palavras-chave: PHP, INI, configuração, parsing

Arquivos .INI são comumente utilizados para armazenar informações sobre a configuração das aplicações. Caminhos de diretórios, caminhos de programas externos, usuários, senhas, dentre outros.

Em aplicações PHP é extremamente simples realizar a leitura de arquivos INI. Para isto existe a função parse_ini_file(). Ela lê o INI e retorna um array multidimensional (matriz) indexado pela chave de cada linha. Inclusive, se o arquivo INI tiver seções, estas seções poderão ser utilizadas como chaves deste array. Veja:

arquivo INI:
==============
; Exemplo de arquivo .INI
; Isto é um comentário
[paths]
app=/usr/local/programa
temp=/tmp

[layout]
cor=vermelho
fonte=arial
tamanho=12

arquivo PHP:
==============
<?php
// primeiro vamos realizar a leitura
// simples do INI, cada chave é transformada
// em um índice do array unidimensional
$ini = parse_ini_file('config.ini');
print $ini['temp'] . "<br>";
print $ini['fonte'] . "<br>";

// agora iremos respeitar a hierarquia das
// seções do INI. O segundo parâmetro faz
// com que as seções sejam as chaves de acesso
// para este array multi-dimensional
$ini = parse_ini_file('config.ini', true);
print $ini['paths']['temp'] . "<br>";
print $ini['layout']['fonte'] . "<br>";
?>
This entry was posted in PHP. Bookmark the permalink.

5 Responses to PHP: Ler o conteúdo de arquivos INI (parsing)

  1. Matheus Nunes says:

    Muito bacana!
    Abre um leque muito grande de novas aplicações!
    Muito obrigado pelo tut!

  2. João Vitor says:

    Muito bom cara esse artigo, perfeito.

    Abraços!

  3. Brunno Gomes says:

    Ótimo artigo cara, direto ao ponto e muito útil.

    Valeu!

  4. Marcos says:

    e como faz para cria um arquivo ini pelo php?

  5. Osmar says:

    Bom tutorial, simples e objetivo. O Marcos perguntou como escrever um arquivo INI, veja se isto ajuda http://forum.imasters.com.br/topic/384416-criando-arquivos-ini-com-php-usando-composite/

Leave a Reply

Your email address will not be published. Required fields are marked *