So zeigen Sie HTML-Tags als einfachen Text an


211

Ich habe ein Eingabeformular auf meiner Website, in dem HTML zulässig ist, und ich versuche, Anweisungen zur Verwendung von HTML-Tags hinzuzufügen. Ich möchte den Text dazu

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

Aber bisher bekomme ich nur:

Sieh genauso aus wie diese Zeile - dann weißt du, wie man sie eingibt

Wie kann ich die Tags anzeigen, damit die Benutzer wissen, was sie eingeben sollen?

Antworten:


296

Ersetzen <durch &lt;und >mit &gt;.


6
Technisch müssen Sie nur <durch & lt; damit es von den meisten Browsern erkannt wird, aber das> von & gt; ist eine gute Übung
cwallenpoole

8
@Darm -1 für die Nichterwähnung von htmlspecialchars (). Wenn es einen berechtigten Grund dafür gibt, korrigieren Sie mich bitte :)
Ronen Ness

7
Wenn der Text der Frage von PHP generiert werden soll, macht htmlspecialchars () das, was diese Antwort vorschlägt: Ersetzen Sie die Zeichen kleiner und größer als (und andere) durch ihre HTML-Entitäten . Da die Frage jedoch nicht spezifiziert ist, ist diese allgemeinere Antwort eine Obermenge aller PHP-spezifischen Antworten. Und die Frage ist wirklich über HTML.
behandeln

Im Gegensatz zu den anderen Kommentaren spart mir diese Antwort 100%. Einige der Antworten, die ich hier gefunden habe, würden sagen, benutze einfach PHP und Echo "<? // like this?>"; aber das hat überhaupt nicht geholfen, immer noch nicht zu zeigen. Auf der anderen Seite spart mir diese Antwort insgesamt 17 Zeichen und @handle hat einen Punkt, der so hochgestimmt wurde.
Ailia


55

Wie viele andere gesagt haben, htmlentities()wird der Trick tun ... aber es wird wie Scheiße aussehen.

Wickeln Sie es mit einem <pre>Etikett ein und Sie behalten Ihre Einrückung.

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

36

Sie sollten verwenden htmlspecialchars. Es ersetzt die folgenden Zeichen:

  • '&' (kaufmännisches Und) wird &amp;
  • '"' (doppeltes Anführungszeichen) wird, &quot;wenn ENT_NOQUOTES nicht gesetzt ist.
  • "'" (einfaches Anführungszeichen) wird &#039;nur, wenn ENT_QUOTES gesetzt ist.
  • '<' (kleiner als) wird &lt;
  • '>' (größer als) wird &gt;

13

Sie können htmlspecialchars () verwenden

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

6

Sie müssen nur das <>s codieren :

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

5

Um HTML-Tags in einem Browser anzuzeigen, umgeben Sie die Ausgabe mit den Tags <xmp> und </ xmp>


4
<xmp> ist jetzt veraltet, mehr als nur veraltet. Benutze es nicht.
Muhammad Abdul-Rahim

Eine schnelle Google-Suche in W3C zeigt, dass XMP für die Anzeige von vorformatiertem Text in HTML 3.2 und früheren Versionen eingeführt wurde. Als W3C das XMP-Tag ablehnte, schlug es vor, das PRE-Tag als bevorzugte Alternative zu verwenden. Update: w3.org/TR/REC-html32#xmp , w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 Freigabe bearbeiten Follow Flag
kophygiddie

3

Sie können HTML-Entitäten verwenden, wenn Sie zum Browser zurückkehren. Dadurch wird das Tag angezeigt, anstatt dass HTML es interpretiert.

Siehe hier http://uk3.php.net/manual/en/function.htmlentities.php

Beispiel:

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

Ausgabe:

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


0

Es geht auch anders...

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

Dadurch wird die gesamte Seite als einfacher Text bereitgestellt ... besser ist htmlspecialchars ...

Hoffe das hilft...


0

Der native JavaScript-Ansatz -

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

Genießen!


1
JavaScript ist in diesem Beitrag nicht markiert.
Isherwood

1
Danke dir. Es ist nützlich für mich.
Khang Dinh Hoang
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.