Come visualizzare i tag HTML come testo normale


211

Ho un modulo di input sul mio sito Web in cui è consentito l'HTML e sto provando ad aggiungere istruzioni sull'uso dei tag HTML. Mi piacerebbe il testo

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

Ma finora tutto ciò che ottengo è:

Assomiglia a questa linea, quindi sappi come digitarla

Come posso mostrare i tag in modo che le persone sappiano cosa digitare?

Risposte:


296

Sostituisci <con &lt;e >con &gt;.


6
Tecnicamente devi solo sostituire <con & lt; per essere riconosciuto dalla maggior parte dei browser, ma il> di & gt; è buona pratica
cwallenpoole,

8
@Darm -1 per non menzionare htmlspecialchars (). Se c'è una ragione giustificata per favore, correggimi :)
Ronen Ness,

7
Se il testo della domanda dovesse essere generato da PHP, htmlspecialchars () fa ciò che suggerisce questa risposta: sostituisce i segni minore e maggiore (e altri) con le loro entità HTML . Ma la domanda non specifica, quindi questa risposta più generale è un superset di tutte le risposte specifiche di PHP. E la domanda riguarda davvero l'HTML.
gestire il

Contrariamente agli altri commenti questa risposta mi fa risparmiare il 100%, alcune delle risposte che ho trovato qui direbbero solo usare php ed echo "<? // come questo?>"; ma questo non ha aiutato affatto a non mostrare. D'altra parte questa risposta mi fa risparmiare 17 caratteri in totale, più @handle ha un punto così votato.
ailia,


55

Come molti altri hanno detto, htmlentities() farà il trucco ... ma sembrerà una merda.

Avvolgilo con un <pre>tag e conserverai la tua rientranza.

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

36

Si dovrebbe usare htmlspecialchars. Sostituisce i caratteri come di seguito:

  • '&' (e commerciale) diventa &amp;
  • '"' (virgolette doppie) diventa &quot;quando ENT_NOQUOTES non è impostato.
  • "'" (virgoletta singola) diventa &#039;solo quando è impostato ENT_QUOTES.
  • '<' (minore di) diventa &lt;
  • '>' (maggiore di) diventa &gt;

13

puoi usare htmlspecialchars ()

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

6

Hai solo bisogno di codificare il <>s:

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

5

Per visualizzare i tag HTML all'interno di un browser, circonda l'output con i tag <xmp> e </ xmp>


4
<xmp> è ormai obsoleto, più che deprecato. Non usarlo.
Muhammad Abdul-Rahim,

Una rapida ricerca su Google su W3C rivela che XMP è stato introdotto per la visualizzazione di testo preformattato in HTML 3.2 e precedenti. Quando W3C ha deprecato il tag XMP, ha suggerito di utilizzare il tag PRE come alternativa preferita. Aggiornamento: w3.org/TR/REC-html32#xmp , w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 condividi modifica segui bandiera
kophygiddie

3

Puoi usare htmlentities quando fai eco al browser, questo mostrerà il tag piuttosto che html lo interpreterà.

Vedi qui http://uk3.php.net/manual/en/function.htmlentities.php

Esempio:

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

Produzione:

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


0

C'è un altro modo ...

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

Questo rende l'intera pagina servita come testo normale ... meglio è htmlspecialchars ...

Spero che questo ti aiuti...


0

L'approccio JavaScript nativo -

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

Godere!


1
JavaScript non è taggato in questo post.
Isherwood,

1
Grazie. È utile per me.
Khang Dinh Hoang
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.