HTML a código de salida de lenguajes backend
WebTodo se ejecuta en tu navegador: no se sube nada
Convierte un bloque de HTML en sentencias de salida para ASP, VB.NET, JSP, PHP o Perl. Lo difícil nunca fueron las comillas, sino un puñado de trampas que se esconden bien: la familia VB duplica la comilla mientras la familia C la escapa con barra invertida, y equivocarse deja la página en blanco; un signo de dólar interpola dentro de las comillas dobles de PHP, así que un precio en tu marcado pierde un trozo sin avisar; y un `%>` dentro de una cadena JSP, o un `?>` dentro de PHP, cierra el bloque de script antes de tiempo — el resto de tu HTML aparece entonces como texto en la página, exactamente como hace `</script>` al incrustar marcado en JavaScript. Todo se maneja aquí por lenguaje, y lo que no se puede expresar se explica en un comentario del código generado.
Funciones
- Cinco destinos: ASP clásico (VBScript), ASP.NET (VB.NET), JSP, PHP y Perl
- Las comillas se escapan como quiere cada lenguaje: duplicadas en la familia VB, con barra invertida en PHP, Perl y JSP
- Los signos de dólar en PHP y Perl, y las arrobas en Perl, se escapan para que no se interpreten como variables
- Un %> del marcado se escribe como %\>, y el cierre de PHP como \x3f>, así que un bloque de script no puede terminar antes
- Una sentencia de salida por línea, con los saltos de línea conservados en vez de comprimir el marcado en una sola línea
- Los saltos de línea usan siempre \n y no una println dependiente de la plataforma, así que Windows y Linux producen el mismo archivo
- Acepta entrada CRLF y LF, y siempre genera LF
- Las líneas vacías y el salto final se tratan con fidelidad: ni una sentencia de más ni una de menos
- Los comentarios salen en inglés, porque van a un archivo .jsp o .php
- La salida lleva resaltado de sintaxis y se copia de una vez
Cómo se usa
- Pega el HTML que quieres imprimir
- Elige el lenguaje de destino
- Desactiva el escape de la etiqueta de cierre solo si tienes la certeza de que el marcado no contiene ninguna
- Copia las sentencias a tu archivo de plantilla
Preguntas frecuentes
- ¿Por qué una sentencia por línea en vez de una sola cadena grande?
- Porque esa es la forma que puedes pegar en una plantilla y depurar línea a línea. Una sola cadena es más corta, pero necesita el mecanismo multilínea de cada lenguaje — heredoc en PHP y Perl, concatenación en VB — que son cinco formas distintas, y cuando un escape sale mal hay que buscar la línea rota dentro de una pared de texto. Con una sentencia por línea, la línea rota es la línea.
- ¿Por qué cada línea termina con & vbLf o un \n?
- Porque ninguna de estas sentencias de salida añade un salto por su cuenta: Response.Write, echo y out.print escriben exactamente la cadena que les das. Sin el salto, todo el bloque se comprime en una línea — inofensivo para casi todas las etiquetas, pero dentro de un `<pre>` o un `<textarea>` esos saltos son el contenido, así que perderlos lo corrompe. Si la última línea de tu entrada no tiene salto, aquí tampoco se añade.
- ¿Por qué se escapan los signos de dólar en PHP y Perl?
- Porque las cadenas entre comillas dobles interpolan en esos lenguajes: PHP expande `"$name"`, y Perl expande tanto `$name` como `@name`. Un marcado con un marcador de posición o un precio (`<b>$99</b>`, `mailto:me@example.com`) perdería un trozo de contenido, o soltaría un aviso por variable no declarada en tiempo de ejecución, y ambos fallos parecen simplemente que los datos venían vacíos. En JSP un signo de dólar no significa nada especial, así que se deja igual.
- ¿Qué hace la opción de escape de la etiqueta de cierre?
- El código JSP y ASP vive dentro de `<% ... %>`, y PHP dentro de `<?php ... ?>`, y el analizador de la plantilla busca esos dos caracteres en el código fuente sin importarle si están dentro de una cadena. Así que una línea como `echo "<div>?>";` sale del modo PHP justo ahí, y todo lo que sigue se imprime en la página como texto: ni error ni pantalla en blanco, solo texto raro en el navegador. Con la opción activada, `%>` se escribe como `%\>` (el escape que entienden esos analizadores) y el cierre de PHP como `\x3f>`: el valor no cambia y la secuencia deja de aparecer en el código fuente.
- ¿Por qué el PHP generado no lleva etiqueta de cierre?
- El manual de PHP recomienda omitir el `?>` de cierre en un archivo que es todo PHP: cualquier salto o espacio detrás se envía al navegador, lo que deja un espacio sobrante al principio de la respuesta, y ese espacio es una causa archiconocida de «headers already sent». El `%>` de ASP y JSP sí es obligatorio, así que se queda.
- ¿Se sube mi HTML?
- No. La conversión ocurre por completo en la memoria del navegador; la página no hace ninguna petición y funciona sin conexión.
Herramientas relacionadas
HTML ↔ JS
WebEscapa HTML a un literal de cadena JS —comillas, saltos de línea y un `</script>` partido— o deshaz el escape y recupera HTML legible.
Código de redirección
WebGenera código de redirección para Apache, Nginx, PHP, ASP, JSP, Java y más, con el estado 301, 302, 307 o 308 que elijas. Todo en tu navegador.
Entidades HTML
CifradoConvierte < > & y las comillas en entidades HTML y las devuelve en una sola pasada, así que &lt; da <, no un ángulo. En tu navegador.
Formateador HTML
FormatoFormatea HTML en línea por niveles de etiqueta, manteniendo el texto y las etiquetas en línea en la misma línea y el contenido de script o pre intacto.
Analizador de URL
WebDescompone una URL en esquema, host, puerto, ruta, parámetros y ancla, con cada parámetro en crudo y decodificado. Todo en tu navegador.
Analizador de UA
WebAnaliza un User-Agent: navegador, versión, sistema, tipo de dispositivo y motor, con las reglas que coinciden. Solo coincidencia de patrones.