Analizar un archivo dotenv en pares clave-valor
Pegue un archivo .env y obtenga sus ajustes como pares clave–valor limpios: en el ejemplo salen 7 claves, PORT conserva su último valor 9090 y COLOR sigue siendo #336699, porque una almohadilla solo abre un comentario tras un espacio. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Los archivos dotenv parecen sencillos hasta que los valores contienen espacios, signos de comentario, asignaciones vacías o texto escapado. Este analizador convierte el contenido completo de un archivo .env en un objeto limpio de pares clave-valor mediante reglas sintácticas claras y previsibles. Ignora líneas vacías y comentarios, conserva el contenido entre comillas, reconoce comentarios en línea tras valores sin comillas e indica la línea exacta cuando una asignación no es válida. El resultado sirve para previsualizar configuraciones, migrarlas, validarlas y crear utilidades de desarrollo sin cargar variables en el entorno del proceso.
Proporcione el texto dotenv completo
Pegue o envíe el contenido del archivo .env en el campo text. Cada línea significativa debe contener una clave, un signo igual y un valor. Las claves comienzan con una letra ASCII o un guion bajo y pueden continuar con letras, dígitos o guiones bajos.
Se aceptan líneas vacías, y toda línea cuyo primer carácter no blanco sea una almohadilla se considera un comentario. Las asignaciones vacías, como CACHE_PREFIX=, son válidas y producen una cadena vacía. El analizador devuelve un objeto values con los pares procesados y un recuento de claves únicas.
Si una clave aparece varias veces, la última asignación sustituye a la anterior, como suele ocurrir al combinar fragmentos de configuración. La herramienta nunca escribe en el entorno de la máquina, expande variables, lee archivos ni contacta con servicios. Solo procesa el texto enviado, por lo que su comportamiento es seguro para previsualizaciones y reproducible en scripts de compilación, extensiones de editor, comprobadores y procesos de migración.
Comprenda las comillas, los escapes y los comentarios
En los valores sin comillas se elimina el espacio exterior. Una almohadilla inicia un comentario en línea únicamente cuando está precedida inmediatamente por un espacio, de modo que los fragmentos de URL y tokens como color=#fff permanecen intactos. Las comillas simples conservan literalmente el texto interior, incluidas las almohadillas y los espacios.
Las comillas dobles también los conservan, pero interpretan escapes habituales de barra inversa para salto de línea, retorno de carro, tabulación, comillas dobles y barra inversa. Tras cerrar las comillas solo se permiten espacios o un comentario. Estas reglas eliminan ambigüedades sin evaluar instrucciones de shell.
El analizador no interpola referencias como ${HOST}, no ejecuta sustituciones de comandos ni convierte cadenas como true y 8080 en booleanos o números. Todos los valores siguen siendo cadenas, porque los datos dotenv son textuales y cada aplicación debe decidir su propia conversión. Así no se pierden ceros iniciales, diferencias entre mayúsculas o valores intencionadamente vacíos.
Trate las entradas no válidas de forma explícita
Una línea que no esté vacía ni sea un comentario y que carezca de signo igual se rechaza en vez de omitirse silenciosamente. Lo mismo ocurre con una clave no válida, un valor entre comillas sin cierre o caracteres inesperados después de las comillas finales. Los mensajes de error incluyen el número de línea, empezando por uno, para que una persona o un editor automatizado localice el problema rápidamente.
Este comportamiento estricto resulta especialmente útil antes de desplegar: aceptar solo una parte de un archivo dañado puede ocultar una opción ausente hasta que la aplicación arranca con valores predeterminados inesperados. El análisis es determinista: el mismo contenido siempre genera el mismo objeto y el mismo error.
Qué puede hacer con ella
Validar la configuración antes del despliegue
Rechace pronto el contenido dotenv mal formado e indique a la persona responsable la línea exacta que debe corregir.
Previsualizar una migración de configuración
Convierta texto .env heredado en un objeto estructurado antes de asignar sus claves a otro sistema de configuración.
Crear una herramienta para desarrollo
Use una salida clave-valor previsible en extensiones de editor, asistentes de instalación, utilidades de compilación o comparadores.
Preguntas frecuentes
¿Cuánto cuesta una solicitud?
El ejecutor del navegador puede analizar localmente el mismo contenido.
¿Los valores se convierten en números o booleanos?
No. Todos permanecen como cadenas, incluidos 8080, true, false y las asignaciones vacías.
¿Cómo se tratan las claves duplicadas?
Prevalece la última asignación, y count indica el número de claves únicas del resultado final.
¿Puede un valor entre comillas contener una almohadilla?
Sí. Las almohadillas dentro de comillas simples o dobles forman parte del valor y no inician un comentario.
¿El analizador expande referencias a variables?
No. Referencias como ${HOST} se devuelven literalmente; no se evalúan expresiones de shell ni del entorno.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su 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)Ejemplo de solicitud
{
"text": "APP_NAME=\"Example service\"\nDEBUG=true\nPORT=8080\n# Optional local override\nEMPTY="
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.env_file_parse",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Trate las entradas no válidas de forma explícita
Utilice el resultado únicamente cuando la solicitud termine correctamente y trate una respuesta invalid_input como una indicación para corregir el texto fuente. Cada solicitud de API cuesta $0.002; el ejecutor del navegador usa la misma lógica pura para probar la sintaxis antes de automatizarla.