Cómo mostrar etiquetas HTML como texto sin formato

211

Tengo un formulario de entrada en mi sitio web donde se permite HTML e intento agregar instrucciones sobre el uso de etiquetas HTML. Me gustaría que el texto

<strong>Look just like this line - so then know how to type it</strong>

Pero hasta ahora todo lo que obtengo es:

Se parece a esta línea, así que sepa cómo escribirla

¿Cómo puedo mostrar las etiquetas para que la gente sepa qué escribir?

usuario517593
fuente

Respuestas:

296

Reemplazar <con &lt;y >con &gt;.

Darm
fuente
66
Técnicamente solo necesita reemplazar <por & lt; para que sea reconocido por la mayoría de los navegadores, pero> por & gt; es una buena práctica
cwallenpoole
8
@Darm -1 por no mencionar htmlspecialchars (). Si hay una razón justificada para eso, corríjame :)
Ronen Ness
77
Si el texto de la pregunta fuera generado por PHP, htmlspecialchars () hace lo que sugiere esta respuesta: reemplazar los signos menor y mayor que (y otros) con sus entidades HTML . Pero la pregunta no especifica, por lo que esta respuesta más general es un superconjunto de todas las respuestas específicas de PHP. Y la pregunta es realmente sobre HTML.
manejar
Al contrario de los otros comentarios, esta respuesta me ahorra el 100%, algunas de las respuestas que encontré aquí dirían simplemente usar php y echo "<? // like this?>"; pero eso no ayudó en absoluto aún no se muestra. Por otro lado, esta respuesta me ahorra 17 caracteres en total más @handle tiene un punto tan votado.
ailia
235

En PHP, use la función htmlspecialchars () para escapar <y >.

htmlspecialchars('<strong>something</strong>')
cumbre
fuente
55

Como muchos otros han dicho, htmlentities() hará el truco ... pero se verá como una mierda.

Envuélvalo con una <pre>etiqueta y conservará su sangría.

echo '<pre>';
echo htmlspecialchars($YOUR_HTML);
echo '</pre>';
Jarrod
fuente
36

Debe utilizar htmlspecialchars. Reemplaza los caracteres de la siguiente manera:

  • '&' (ampersand) se convierte en &amp;
  • '"' (comillas dobles) se convierte &quot;cuando ENT_NOQUOTES no está configurado.
  • "'" (comilla simple) se convierte &#039;solo cuando ENT_QUOTES está configurado.
  • '<' (menor que) se convierte &lt;
  • '>' (mayor que) se convierte en &gt;
Luiz Damim
fuente
13

puedes usar htmlspecialchars ()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>
Nikunj K.
fuente
6

Solo necesitas codificar el <>s:

&lt;strong&gt;Look just like this line - so then know how to type it&lt;/strong&gt;
James Montagne
fuente
5

Para mostrar etiquetas HTML dentro de un navegador, rodee la salida con etiquetas <xmp> y </ xmp>

Paulo Henrique
fuente
44
<xmp> está obsoleto ahora, más que simplemente en desuso. No lo uses
Muhammad Abdul-Rahim
Una búsqueda rápida en Google en W3C revela que XMP se introdujo para mostrar texto preformateado en HTML 3.2 y versiones anteriores. Cuando W3C desaprobó la etiqueta XMP, sugirió usar la etiqueta PRE como alternativa preferida. Actualización: w3.org/TR/REC-html32#xmp , w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 compartir editar seguir bandera
kophygiddie
3

Puede usar htmlentities al hacer eco en el navegador, esto mostrará la etiqueta en lugar de que html la interprete.

Ver aquí http://uk3.php.net/manual/en/function.htmlentities.php

Ejemplo:

 echo htmlentities("<strong>Look just like this line - so then know how to type it</strong>"); 

Salida:

<strong>Look just like this line - so then know how to type it</strong>
martynthewolf
fuente
1

Use htmlentities () para convertir caracteres que de otro modo se mostrarían como HTML.

Rubén
fuente
0

Hay otra manera ...

header('Content-Type: text/plain; charset=utf-8');

Esto hace que toda la página sirva como texto sin formato ... mejor es htmlspecialchars ...

Espero que esto ayude...

Alessandro
fuente
0

El enfoque nativo de JavaScript:

('<strong>Look just like ...</strong>').replace(/</ig, '&lt;').replace(/>/ig, '&gt;');

¡Disfrutar!

simonbor
fuente
1
JavaScript no está etiquetado en esta publicación.
Isherwood
1
Gracias. Es útil para mi.
Khang Dinh Hoang