Analizzare un file dotenv in coppie chiave-valore
I file dotenv sembrano semplici finché i valori non contengono spazi, simboli di commento, assegnazioni vuote o testo con escape.
Esegui gratis nel browser
Questo parser trasforma l’intero contenuto di un file .env in un oggetto ordinato di coppie chiave-valore applicando regole sintattiche chiare e prevedibili. Ignora righe vuote e commenti, conserva il contenuto tra virgolette, riconosce i commenti dopo valori senza virgolette e segnala la riga esatta di ogni assegnazione non valida. Il risultato è adatto ad anteprime, migrazioni, controlli e strumenti di sviluppo che richiedono dati strutturati senza caricare variabili nell’ambiente del processo.
Fornisca tutto il testo dotenv
Incolli o invii il contenuto del file .env nel campo text. Ogni riga significativa deve contenere una chiave, un segno uguale e un valore. Le chiavi iniziano con una lettera ASCII o un trattino basso e possono proseguire con lettere, cifre o trattini bassi. Le righe vuote sono ammesse; ogni riga il cui primo carattere non vuoto è un cancelletto viene trattata come commento. Le assegnazioni vuote, per esempio CACHE_PREFIX=, sono valide e producono una stringa vuota. Il parser restituisce un oggetto values con le coppie elaborate e il conteggio delle chiavi uniche. Se una chiave compare più volte, l’ultima assegnazione sostituisce la precedente, secondo il normale schema di sovrascrittura usato quando si uniscono frammenti di configurazione. Lo strumento non scrive nell’ambiente del computer, non espande variabili, non legge file e non contatta servizi. Elabora soltanto il testo inviato, quindi il comportamento è sicuro da visualizzare e facile da riprodurre in script di build, estensioni dell’editor, verificatori e procedure di migrazione.
Comprenda virgolette, escape e commenti
Dai valori senza virgolette vengono rimossi gli spazi esterni. Un cancelletto avvia un commento in linea solo quando è preceduto immediatamente da uno spazio; frammenti URL e token come color=#fff restano pertanto intatti. Gli apici singoli conservano letteralmente il testo interno, compresi cancelletti e spazi. Le virgolette doppie li conservano a loro volta, ma interpretano i comuni escape con barra inversa per nuova riga, ritorno a capo, tabulazione, virgoletta doppia e barra inversa. Dopo la virgoletta finale sono consentiti soltanto spazi o un commento. Queste regole eliminano le ambiguità senza valutare comandi shell. Il parser non interpola riferimenti come ${HOST}, non esegue sostituzioni di comandi e non converte stringhe come true e 8080 in booleani o numeri. Ogni valore rimane una stringa, poiché i dati dotenv sono testuali e ogni applicazione deve scegliere le proprie conversioni. In questo modo restano intatti zeri iniziali, maiuscole, minuscole e valori volutamente vuoti.
Gestisca esplicitamente gli input non validi
Usa lo strumento web per controlli singoli e l’API quando vuoi integrare la stessa capacità in un flusso automatizzato.
Casi d'uso
Validare la configurazione prima del rilascio
Rifiuti subito contenuti dotenv malformati e indichi alla persona responsabile la riga precisa da correggere.
Visualizzare una migrazione di configurazione
Converta il vecchio testo .env in un oggetto strutturato prima di mappare le chiavi in un altro sistema.
Creare uno strumento di sviluppo
Usi un output prevedibile in estensioni dell’editor, procedure guidate, utilità di build o confronti.
Domande frequenti
Quanto costa una richiesta?
Una richiesta tramite API costa $0.002. L’esecutore nel browser può analizzare localmente lo stesso contenuto.
I valori vengono convertiti in numeri o booleani?
No. Rimangono tutti stringhe, compresi 8080, true, false e le assegnazioni vuote.
Come vengono gestite le chiavi duplicate?
Prevale l’ultima assegnazione e count indica il numero di chiavi uniche nel risultato finale.
Un valore tra virgolette può contenere un cancelletto?
Sì. I cancelletti tra apici o virgolette fanno parte del valore e non iniziano un commento.
Il parser espande i riferimenti alle variabili?
No. Riferimenti come ${HOST} vengono restituiti letteralmente, senza valutare espressioni shell o di ambiente.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.env_file_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |