Parser de Configuracao INI

Arquivos INI sao um formato de configuracao simples com secoes e pares chave-valor, historicamente usados pelo Windows e ainda comuns em muitas aplicacoes (php.ini, my.cnf, setup.cfg). Esta ferramenta analisa a sintaxe INI, exibe secoes e propriedades, e pode converter para JSON.

Especificacoes

Casos de Uso Comuns

  • Inspecionar configuracao php.ini ou MySQL my.cnf
  • Analisar arquivos Python setup.cfg ou tox.ini
  • Revisar arquivos de configuracao Git (.gitconfig)
  • Depurar configuracoes de aplicacoes Windows
  • Converter configuracoes INI legadas para JSON ou YAML

Funcionalidades

  • Analisar cabecalhos [section] e pares key=value
  • Tratar comentarios (prefixos ; e #)
  • Suportar valores entre aspas com sequencias de escape
  • Exibir propriedades globais (antes de qualquer secao)
  • Converter para JSON para uso programatico
  • Modo de visualizacao formatada
  • Exibicao de comentarios por secao
  • Avisos de parse para entradas malformadas

Exemplos

Configuracao de Banco de Dados

Experimente →

Um arquivo tipico de configuracao de banco de dados.

[database]
host=localhost
port=3306
name=myapp_db
user=admin

[cache]
enabled=true
ttl=3600
driver=redis

Configuracao PHP

Experimente →

Um trecho de php.ini.

; PHP Configuration
[PHP]
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 64M

[Date]
date.timezone = "America/New_York"

Dicas

  • Nomes de secao nao diferenciam maiusculas/minusculas na maioria das implementacoes.
  • Use aspas em torno de valores contendo caracteres especiais.
  • Comentarios tradicionalmente usam ; mas alguns parsers tambem aceitam #.
  • Chaves duplicadas na mesma secao podem sobrescrever ou criar arrays dependendo do parser.

Entendendo Parser de Configuracao INI

Arquivos INI sao um formato de configuracao simples usando secoes (entre colchetes) e pares chave-valor. Apesar de nao ter especificacao formal, o formato tem sido amplamente usado desde os primeiros dias do MS-DOS e Windows. PHP usa php.ini, Git usa .gitconfig (estilo INI), aplicacoes Windows usam arquivos .ini, e muitos sistemas legados dependem do formato.

A estrutura basica agrupa pares key=value sob cabecalhos [section]. Valores sao tipicamente strings, embora alguns parsers interpretem numeros e booleanos. Comentarios usam ponto e virgula (;) ou simbolos de hash (#). Valores multi-linha, secoes aninhadas e sequencias de escape variam entre implementacoes, pois nao ha padrao autoritativo.

Arquivos INI preenchem a lacuna entre formatos chave-valor planos (como arquivos .env) e formatos estruturados (como TOML e YAML). Eles fornecem organizacao em nivel de secao sem a complexidade de estruturas de dados aninhadas. Para configuracao simples de aplicacao com agrupamentos logicos, INI permanece uma escolha pratica.

A falta de padronizacao e a principal fraqueza do INI. Diferentes parsers discordam sobre caracteres de comentario, se chaves diferenciam maiusculas/minusculas, como tratar chaves e secoes duplicadas, e se valores podem abranger multiplas linhas. Ao iniciar um novo projeto, TOML e geralmente uma escolha melhor, pois fornece a mesma organizacao baseada em secoes com uma especificacao formal e tipos de dados mais ricos.

TOML foi projetado como um substituto moderno para INI com uma especificacao formal. Ele adiciona tipos de dados nativos (inteiros, floats, booleanos, datas, arrays), tabelas aninhadas, arrays de tabelas e strings multi-linha — recursos que INI nao tem. Para novos projetos, TOML e a melhor escolha; INI e principalmente relevante para compatibilidade legada com arquivos de configuracao existentes.

Sensibilidade a maiusculas/minusculas de chaves varia por implementacao. Funcoes INI do Windows nao diferenciam maiusculas/minusculas, configparser do Python nao diferencia maiusculas/minusculas para chaves por padrao, parse_ini_file do PHP diferencia maiusculas/minusculas para chaves mas nao para secoes, e config do Git nao diferencia maiusculas/minusculas para nomes de secao e chave. Sempre verifique a documentacao do seu parser especifico. O tratamento de caracteres especiais em valores e igualmente inconsistente — alguns parsers suportam aspas de valores com aspas duplas, alguns suportam sequencias de escape, e alguns tratam tudo apos o sinal de igual como valor literal. Quando caracteres especiais sao necessarios, verifique o comportamento com seu parser especifico ou considere migrar para TOML.

← Voltar para todas as ferramentas