Validador INI
Valide arquivos de configuração INI, como php.ini, my.cnf, entradas de desktop ou configurações de ferramentas, antes que um serviço se recuse a iniciar. O validador lê todas as linhas, aceita seções, pares de chave e valor, comentários e valores entre aspas, e informa linhas que não consegue interpretar, cabeçalhos de seção não fechados, chaves vazias e aspas não fechadas. Também sinaliza chaves e seções duplicadas e lista cada seção com suas chaves, para que você possa revisar a estrutura rapidamente.
Perguntas frequentes
O que torna um arquivo INI válido aqui?
Toda linha não vazia deve ser um cabeçalho de seção, como [database], uma chave com valor, como host = localhost, ou um comentário. Uma linha que não seja nenhuma dessas opções, um cabeçalho de seção não fechado, uma chave vazia ou um valor entre aspas não fechado é um erro. Os erros tornam o arquivo inválido e são listados com os números das linhas.
O INI não tem um padrão único. Quais regras o validador usa?
Ele segue o dialeto comum usado por PHP, MySQL e muitas ferramentas: chaves e valores são separados por = ou por : quando não há =, os comentários começam com ; ou #, e um ; ou # depois de um espaço em branco em um valor sem aspas inicia um comentário em linha. Os nomes das seções podem conter espaços, pontos e aspas, como nas seções no estilo Git. Os valores não são verificados por tipo, porque o INI não tem tipos de dados.
O que acontece com chaves duplicadas?
Uma chave definida duas vezes na mesma seção é informada como aviso, com a linha da segunda definição. A maioria dos analisadores INI mantém o último valor, ignorando silenciosamente o anterior. O arquivo ainda é informado como válido.
O que acontece com seções duplicadas?
Um cabeçalho de seção que aparece novamente é informado como aviso, e suas chaves são mescladas com as da primeira ocorrência. Alguns programas tratam seções repetidas de forma diferente, por isso geralmente é melhor combiná-las.
Chaves de array, como extension[], são compatíveis?
Sim. Chaves terminadas em [] acumulam seus valores em uma lista, como nos arquivos de configuração PHP, e sua repetição não é informada como duplicata. A lista de seções mostra a chave uma única vez.
O que são chaves globais?
Chaves que aparecem antes do primeiro cabeçalho de seção não pertencem a nenhuma seção. Elas são listadas como Chaves globais no resultado, e muitas ferramentas as tratam como padrões ou configurações de nível superior.
Como os valores entre aspas são tratados?
Valores entre aspas duplas podem conter ;, # e = e aceitam as sequências de escape \", \\, \n e \t, enquanto valores entre aspas simples são interpretados literalmente. Um valor entre aspas que não seja fechado na mesma linha é um erro. Espaços ao redor de valores sem aspas são removidos.
Quanto da estrutura é listado?
O resultado lista cada seção com a quantidade de chaves e os nomes delas, até 200 seções e 50 chaves por seção, além da contagem de todas as seções e chaves. São exibidos até 20 erros e 20 avisos, com a contagem dos adicionais.
Seções aninhadas, como [a.b], são interpretadas?
Os nomes das seções são mantidos exatamente como foram escritos, então [a.b] é uma seção chamada a.b, e não uma subseção de a. O fato de um programa tratar pontos como níveis de aninhamento depende do próprio programa. O validador só verifica se o nome não está vazio e se o cabeçalho está fechado.
Qual pode ser o tamanho do arquivo e posso convertê-lo?
Os arquivos de entrada podem ter até 5 MiB. Para converter um arquivo INI válido em JSON, YAML, TOML ou outro formato, use o Data Format Converter, que mapeia seções para objetos.