INI-Konfigurations-Parser
INI-Dateien sind ein einfaches Konfigurationsformat mit Abschnitten und Schlüssel-Wert-Paaren, das historisch von Windows verwendet wird und in vielen Anwendungen noch verbreitet ist (php.ini, my.cnf, setup.cfg). Dieses Tool parst INI-Syntax, zeigt Abschnitte und Eigenschaften an und kann in JSON konvertieren.
Spezifikationen
Haeufige Anwendungsfaelle
- php.ini- oder MySQL-my.cnf-Konfiguration untersuchen
- Python-setup.cfg- oder tox.ini-Dateien parsen
- Git-Konfigurationsdateien überprüfen (.gitconfig)
- Windows-Anwendungseinstellungen debuggen
- Legacy-INI-Konfigurationen in JSON oder YAML konvertieren
Funktionen
- [section]-Header und key=value-Paare parsen
- Kommentare verarbeiten (; und #-Präfixe)
- Werte in Anführungszeichen mit Escape-Sequenzen unterstützen
- Globale Eigenschaften anzeigen (vor jedem Abschnitt)
- Konvertierung zu JSON für programmatische Nutzung
- Formatierte Ansicht
- Kommentaranzeige pro Abschnitt
- Parsing-Warnungen bei fehlerhaften Einträgen
Beispiele
Datenbank-Konfiguration
Ausprobieren →Eine typische Datenbank-Konfigurationsdatei.
[database]
host=localhost
port=3306
name=myapp_db
user=admin
[cache]
enabled=true
ttl=3600
driver=redisPHP-Konfiguration
Ausprobieren →Ein Ausschnitt aus der php.ini.
; PHP Configuration
[PHP]
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 64M
[Date]
date.timezone = "America/New_York"Tipps
- Abschnittsnamen sind in den meisten Implementierungen nicht groß-/kleinschreibungsempfindlich.
- Verwenden Sie Anführungszeichen um Werte, die Sonderzeichen enthalten.
- Kommentare verwenden traditionell ;, aber einige Parser akzeptieren auch #.
- Doppelte Schlüssel im selben Abschnitt können je nach Parser überschrieben werden oder Arrays erzeugen.
Verstaendnis INI-Konfigurations-Parser
INI-Dateien sind ein einfaches Konfigurationsformat, das Abschnitte (in eckigen Klammern) und Schlüssel-Wert-Paare verwendet. Trotz fehlender formaler Spezifikation wird das Format seit den frühen Tagen von MS-DOS und Windows weit verbreitet eingesetzt. PHP verwendet php.ini, Git verwendet .gitconfig (INI-Stil), Windows-Anwendungen verwenden .ini-Dateien, und viele Altsysteme sind auf das Format angewiesen.
Die grundlegende Struktur gruppiert key=value-Paare unter [section]-Headern. Werte sind typischerweise Strings, obwohl einige Parser Zahlen und Booleans interpretieren. Kommentare verwenden Semikolons (;) oder Raute-Zeichen (#). Mehrzeilige Werte, verschachtelte Abschnitte und Escape-Sequenzen variieren zwischen Implementierungen, da es keinen maßgeblichen Standard gibt.
INI-Dateien füllen die Lücke zwischen flachen Schlüssel-Wert-Formaten (wie .env-Dateien) und strukturierten Formaten (wie TOML und YAML). Sie bieten Organisation auf Abschnittsebene ohne die Komplexität verschachtelter Datenstrukturen. Für einfache Anwendungskonfiguration mit logischen Gruppierungen bleibt INI eine praktische Wahl.
Das Fehlen einer Standardisierung ist die Hauptschwäche von INI. Verschiedene Parser sind sich nicht einig über Kommentarzeichen, ob Schlüssel groß-/kleinschreibungsempfindlich sind, wie mit doppelten Schlüsseln und Abschnitten umzugehen ist und ob Werte sich über mehrere Zeilen erstrecken können. Bei neuen Projekten ist TOML in der Regel die bessere Wahl, da es die gleiche abschnittsbasierte Organisation mit einer formalen Spezifikation und reichhaltigeren Datentypen bietet.
TOML wurde als moderner Ersatz für INI mit einer formalen Spezifikation entworfen. Es fügt native Datentypen (Ganzzahlen, Gleitkommazahlen, Booleans, Datumsangaben, Arrays), verschachtelte Tabellen, Arrays von Tabellen und mehrzeilige Strings hinzu — Funktionen, die INI vollständig fehlen. Für neue Projekte ist TOML die bessere Wahl; INI ist hauptsächlich für die Legacy-Kompatibilität mit bestehenden Konfigurationsdateien relevant.
Die Groß-/Kleinschreibungsempfindlichkeit von Schlüsseln variiert je nach Implementierung. Windows-INI-Funktionen sind nicht groß-/kleinschreibungsempfindlich, Pythons configparser ist standardmäßig nicht groß-/kleinschreibungsempfindlich für Schlüssel, PHPs parse_ini_file ist groß-/kleinschreibungsempfindlich für Schlüssel aber nicht für Abschnitte, und Git config ist für sowohl Abschnitts- als auch Schlüsselnamen nicht groß-/kleinschreibungsempfindlich. Überprüfen Sie immer die Dokumentation Ihres spezifischen Parsers. Die Handhabung von Sonderzeichen in Werten ist ähnlich inkonsistent — einige Parser unterstützen das Quotieren von Werten mit doppelten Anführungszeichen, einige unterstützen Escape-Sequenzen, und einige behandeln alles nach dem Gleichheitszeichen als literalen Wert. Wenn Sonderzeichen benötigt werden, überprüfen Sie das Verhalten mit Ihrem spezifischen Parser oder erwägen Sie die Migration zu TOML.