Analyser un fichier dotenv en paires clé-valeur
Les fichiers dotenv paraissent simples jusqu’à ce que les valeurs contiennent des espaces, des signes de commentaire, des affectations vides ou du texte échappé.
Lancer gratuitement
Cet analyseur transforme le contenu complet d’un fichier .env en un objet propre de paires clé-valeur selon des règles syntaxiques claires et prévisibles. Il ignore les lignes vides et les commentaires, conserve le contenu entre guillemets, reconnaît les commentaires placés après une valeur non citée et indique précisément la ligne d’une affectation incorrecte. Le résultat convient aux aperçus, migrations, validations et outils de développement qui exigent des données structurées sans charger de variables dans l’environnement du processus.
Fournissez l’intégralité du texte dotenv
Collez ou envoyez le contenu du fichier .env dans le champ text. Chaque ligne significative doit contenir une clé, un signe égal et une valeur. Une clé commence par une lettre ASCII ou un trait de soulignement, puis peut contenir des lettres, chiffres ou traits de soulignement. Les lignes vides sont acceptées et toute ligne dont le premier caractère non blanc est un dièse est considérée comme un commentaire. Une affectation vide telle que CACHE_PREFIX= est valide et produit une chaîne vide. L’analyseur renvoie un objet values contenant les paires ainsi que le nombre de clés uniques. Si une clé apparaît plusieurs fois, la dernière affectation remplace la précédente, conformément au mécanisme de surcharge habituel lors de la combinaison de fragments de configuration. L’outil n’écrit jamais dans l’environnement de la machine, ne développe aucune variable, ne lit aucun fichier et ne contacte aucun service. Il traite uniquement le texte fourni, avec un comportement sûr à prévisualiser et reproductible dans un script de compilation, une extension d’éditeur, un contrôleur ou une migration.
Comprenez les guillemets, échappements et commentaires
Les espaces extérieurs d’une valeur sans guillemets sont supprimés. Un dièse ouvre un commentaire de fin de ligne uniquement lorsqu’une espace le précède immédiatement ; les fragments d’URL et les jetons comme color=#fff restent donc intacts. Les apostrophes conservent littéralement le texte intérieur, y compris les dièses et espaces. Les guillemets doubles les conservent aussi, mais interprètent les échappements usuels avec barre oblique inverse pour le saut de ligne, le retour chariot, la tabulation, le guillemet double et la barre elle-même. Après le guillemet fermant, seuls des espaces ou un commentaire sont permis. Ces règles évitent l’ambiguïté sans évaluer de commandes shell. L’analyseur ne développe pas les références comme ${HOST}, n’exécute aucune substitution de commande et ne transforme pas true ou 8080 en booléen ou nombre. Toute valeur reste une chaîne : les données dotenv sont textuelles et chaque application doit choisir ses conversions. Les zéros initiaux, la casse et les valeurs volontairement vides sont ainsi préservés.
Traitez explicitement les entrées incorrectes
Utilisez l’outil web pour les vérifications ponctuelles et l’API pour intégrer la même capacité à un flux automatisé.
Cas d’usage
Valider la configuration avant le déploiement
Rejetez tôt un contenu dotenv incorrect et indiquez à la personne responsable la ligne exacte à corriger.
Prévisualiser une migration de configuration
Convertissez un ancien texte .env en objet structuré avant d’associer ses clés à un autre système.
Créer un outil de développement
Employez une sortie prévisible dans une extension d’éditeur, un assistant, un outil de compilation ou une comparaison.
Questions fréquentes
Quel est le prix d’une requête ?
Une requête API coûte $0.002. L’exécuteur du navigateur peut analyser localement le même contenu.
Les valeurs deviennent-elles des nombres ou des booléens ?
Non. Elles restent toutes des chaînes, notamment 8080, true, false et les affectations vides.
Comment les clés en double sont-elles traitées ?
La dernière affectation prévaut et count indique le nombre de clés uniques dans le résultat final.
Une valeur citée peut-elle contenir un dièse ?
Oui. Un dièse entre apostrophes ou guillemets fait partie de la valeur et n’ouvre pas de commentaire.
L’analyseur développe-t-il les références de variables ?
Non. Les références comme ${HOST} sont rendues littéralement, sans évaluation du shell ni de l’environnement.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.env_file_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |