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.