Dotenv-Dateiinhalt in Schlüssel-Wert-Paare parsen
Dotenv-Dateien wirken einfach, bis Werte Leerzeichen, Kommentarzeichen, leere Zuweisungen oder Escape-Sequenzen enthalten.
Im Browser ausführen – kostenlos
Dieser Parser wandelt den vollständigen Inhalt einer .env-Datei anhand klarer, vorhersehbarer Syntaxregeln in ein sauberes Objekt aus Schlüssel-Wert-Paaren um. Er ignoriert Leerzeilen und Kommentare, bewahrt Inhalte in Anführungszeichen, erkennt Kommentare hinter nicht zitierten Werten und meldet bei einer fehlerhaften Zuweisung die genaue Zeile. Das Ergebnis eignet sich für Konfigurationsvorschauen, Migrationen, Prüfungen und Entwicklungswerkzeuge, die strukturierte Daten benötigen, ohne Variablen in die Prozessumgebung zu laden.
Übergeben Sie den vollständigen dotenv-Text
Fügen Sie den Inhalt der .env-Datei in das Feld text ein oder senden Sie ihn darüber. Jede relevante Zeile muss einen Schlüssel, ein Gleichheitszeichen und einen Wert enthalten. Schlüssel beginnen mit einem ASCII-Buchstaben oder Unterstrich und dürfen danach Buchstaben, Ziffern oder Unterstriche enthalten. Leerzeilen sind zulässig; eine Zeile, deren erstes Nicht-Leerzeichen eine Raute ist, gilt als Kommentar. Leere Zuweisungen wie CACHE_PREFIX= sind gültig und ergeben eine leere Zeichenfolge. Der Parser liefert ein values-Objekt mit den verarbeiteten Paaren sowie die Anzahl eindeutiger Schlüssel. Kommt ein Schlüssel mehrfach vor, ersetzt die spätere Zuweisung die frühere. Dies entspricht dem üblichen Überschreibungsverhalten beim Zusammenführen von Konfigurationsfragmenten. Das Werkzeug schreibt nie in die Maschinenumgebung, erweitert keine Variablen, liest keine Dateien und kontaktiert keinen Dienst. Es verarbeitet ausschließlich den übergebenen Text. Dadurch lässt sich sein Verhalten gefahrlos prüfen und in Build-Skripten, Editor-Erweiterungen, Konfigurationsprüfern oder Migrationen zuverlässig reproduzieren.
Verstehen Sie Anführungszeichen, Escapes und Kommentare
Bei Werten ohne Anführungszeichen werden äußere Leerzeichen entfernt. Eine Raute beginnt nur dann einen Inline-Kommentar, wenn unmittelbar davor ein Leerzeichen steht. URL-Fragmente und Tokens wie color=#fff bleiben deshalb unverändert. Einfache Anführungszeichen bewahren den enthaltenen Text einschließlich Rauten und Leerzeichen wörtlich. Doppelte Anführungszeichen bewahren diese Zeichen ebenfalls, interpretieren jedoch bekannte Backslash-Escapes für Zeilenumbruch, Wagenrücklauf, Tabulator, doppeltes Anführungszeichen und Backslash. Nach dem schließenden Anführungszeichen sind nur Leerraum oder ein Kommentar zulässig. Diese Regeln vermeiden Mehrdeutigkeit, ohne Shell-Ausdrücke auszuwerten. Der Parser ersetzt weder Verweise wie ${HOST} noch führt er Befehlsersetzungen aus oder wandelt Zeichenfolgen wie true und 8080 in boolesche Werte oder Zahlen um. Jeder Wert bleibt eine Zeichenfolge, da dotenv-Daten textuell sind und die jeweilige Anwendung über ihre Konvertierung entscheiden sollte. Führende Nullen, Groß- und Kleinschreibung sowie absichtlich leere Werte bleiben so erhalten.
Behandeln Sie ungültige Eingaben ausdrücklich
Nutzen Sie das Web-Werkzeug für einzelne Prüfungen und die API, wenn Sie dieselbe Funktion automatisieren möchten.
Anwendungsfälle
Konfiguration vor der Bereitstellung prüfen
Lehnen Sie fehlerhaften dotenv-Inhalt früh ab und nennen Sie der verantwortlichen Person die genau zu korrigierende Zeile.
Eine Konfigurationsmigration vorbereiten
Wandeln Sie älteren .env-Text in ein strukturiertes Objekt um, bevor Sie seine Schlüssel einem anderen System zuordnen.
Ein Entwicklungswerkzeug erstellen
Nutzen Sie vorhersehbare Schlüssel-Wert-Ausgaben in Editor-Erweiterungen, Assistenten, Build-Werkzeugen oder Vergleichen.
Häufige Fragen
Was kostet eine Anfrage?
Eine API-Anfrage kostet $0.002. Der Browser-Runner kann denselben Inhalt lokal parsen.
Werden Werte in Zahlen oder boolesche Werte umgewandelt?
Nein. Alle Werte bleiben Zeichenfolgen, darunter 8080, true, false und leere Zuweisungen.
Wie werden doppelte Schlüssel behandelt?
Die letzte Zuweisung gewinnt; count nennt die Zahl eindeutiger Schlüssel im endgültigen Ergebnis.
Darf ein zitierter Wert eine Raute enthalten?
Ja. Rauten in einfachen oder doppelten Anführungszeichen gehören zum Wert und beginnen keinen Kommentar.
Erweitert der Parser Variablenverweise?
Nein. Verweise wie ${HOST} werden wörtlich zurückgegeben; Shell- oder Umgebungsersetzungen finden nicht statt.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev2/env-file-parse \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="}'const res = await fetch("https://api.kit.forhosting.com/dev2/env-file-parse", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/env-file-parse",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/env-file-parse", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"APP_NAME=\\"Example service\\"\\nDEBUG=true\\nPORT=8080\\n# Optional local override\\nEMPTY="}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/env-file-parse", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.env_file_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |