Validátor INI
Ověřte konfigurační soubory INI, například php.ini, my.cnf, záznamy na ploše nebo nastavení nástrojů, ještě než kvůli nim služba odmítne spustit. Validátor čte každý řádek, přijímá sekce, dvojice klíčů a hodnot, komentáře i hodnoty v uvozovkách a hlásí řádky, kterým nerozumí, neuzavřená záhlaví sekcí, prázdné klíče a neuzavřené uvozovky. Označí také duplicitní klíče a sekce a vypíše každou sekci s jejími klíči, abyste mohli strukturu rychle zkontrolovat.
Často kladené otázky
Co se zde považuje za platný soubor INI?
Každý neprázdný řádek musí být záhlaví sekce, například [database], klíč s hodnotou, například host = localhost, nebo komentář. Chybu představuje řádek, který není ničím z toho, neuzavřené záhlaví sekce, prázdný klíč nebo neuzavřená hodnota v uvozovkách. Chyby znamenají, že je soubor neplatný, a jsou uvedeny spolu s čísly řádků.
INI nemá jediný standard. Jaká pravidla validátor používá?
Řídí se běžným dialektem, který používají PHP, MySQL a mnoho dalších nástrojů: klíče a hodnoty se oddělují znakem =, nebo znakem : pokud se v řádku nevyskytuje =; komentáře začínají znakem ; nebo # a znak ; nebo # po bílé mezeře v neuzavřené hodnotě začíná vložený komentář. Názvy sekcí mohou obsahovat mezery, tečky a uvozovky, jako v sekcích ve stylu Git. Typy hodnot se nekontrolují, protože INI žádné datové typy nemá.
Co se stane při duplicitních klíčích?
Klíč definovaný dvakrát v jedné sekci se zobrazí jako varování s číslem řádku druhé definice. Většina parserů INI ponechá poslední hodnotu, takže předchozí tiše ignoruje. Soubor je přesto označen jako platný.
Co se stane při duplicitních sekcích?
Opakované záhlaví sekce se zobrazí jako varování a jeho klíče se sloučí s klíči prvního výskytu. Některé programy s opakovanými sekcemi zacházejí odlišně, proto je obvykle nejlepší sloučit je.
Jsou podporovány klíče polí, například extension[]?
Ano. Klíče končící na [] shromažďují své hodnoty do seznamu jako v konfiguračních souborech PHP a jejich opakování se nehlásí jako duplicita. V seznamu sekcí se klíč zobrazí pouze jednou.
Co jsou globální klíče?
Klíče před prvním záhlavím sekce nepatří do žádné sekce. Ve výsledku jsou uvedeny jako globální klíče a mnoho nástrojů s nimi zachází jako s výchozími nebo nejvyššími nastaveními.
Jak se zpracovávají hodnoty v uvozovkách?
Hodnoty v dvojitých uvozovkách mohou obsahovat ;, # a = a podporují escape sekvence \", \\, \n a \t, zatímco hodnoty v jednoduchých uvozovkách se berou doslova. Neuzavřená hodnota v uvozovkách na stejném řádku je chyba. Z neuzavřených hodnot se odstraní okolní mezery.
Kolik údajů o struktuře se vypisuje?
Výsledek vypíše každou sekci s počtem klíčů a jejich názvy, až do 200 sekcí a 50 klíčů na sekci, a také souhrnné počty všech sekcí a klíčů. Zobrazí se až 20 chyb a 20 varování spolu s počtem dalších.
Rozpoznávají se vnořené sekce, například [a.b]?
Názvy sekcí se zachovávají přesně tak, jak jsou zapsané, takže [a.b] je sekce s názvem a.b, nikoli podsekce sekce a. To, zda program považuje tečky za označení vnoření, závisí na daném programu. Validátor pouze kontroluje, že název není prázdný a záhlaví je uzavřené.
Jak velký může být soubor a lze ho převést?
Vstup může mít až 5 MiB. Chcete-li platný soubor INI převést na JSON, YAML, TOML nebo jiný formát, použijte Převodník datových formátů, který převádí sekce na objekty.