HTMLタグをプレーンテキストとして表示する方法


211

HTMLが許可されているウェブサイトに入力フォームがあり、HTMLタグの使用に関する指示を追加しようとしています。テキストをお願いします

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

しかし、これまでのところ私が得るすべては:

この行のように見える-それでそれを入力する方法を知っている

どのようにタグを表示すれば、人々は何を入力すればいいのかわかるでしょうか

回答:


296

交換する<&lt;して>&gt;


6
技術的には、<を&lt;に置き換えるだけです。ほとんどのブラウザで認識されますが、>による&gt; 良い習慣はある
cwallenpoole

8
@Darm -1は、htmlspecialchars()について言及していないためです。正当な理由がある場合は修正してください:)
Ronen Ness

7
質問のテキストがPHPによって生成される場合、htmlspecialchars()はこの回答が示唆することを行います。小なり記号と大なり記号(およびその他)をHTMLエンティティに置き換えます。しかし、質問には明記されていないため、このより一般的な答えは、PHP固有のすべての答えのスーパーセットです。そして問題は本当にHTMLについてです。
ハンドル

他のコメントとは対照的に、この回答は100%節約できます。ここで見つけた回答の一部は、phpを使用して「<?// like this?>」エコーするだけです。しかし、それでもまったく役に立たなかった。一方、この回答により、合計17文字節約できます。さらに、@ handleがポイントを獲得し、投票されました。
ailia


55

他の多くの人が言ったhtmlentities()ように、トリックを行います...しかし、それはたわごとのようになります。

<pre>タグで包み込むと、インデントが保持されます。

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

36

使用する必要がありますhtmlspecialchars。以下のように文字を置き換えます:

  • '&'(アンパサンド)は &amp;
  • '"'(二重引用符)は&quot;、ENT_NOQUOTESが設定されていない場合に使用されます。
  • "'"(一重引用符)は&#039;、ENT_QUOTESが設定されている場合のみになります。
  • 「<」(より小)になる &lt;
  • '>'(より大きい)になります &gt;

13

あなたはhtmlspecialchars()を使うかもしれません

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


5

ブラウザ内でHTMLタグを表示するには、出力を<xmp>および</ xmp>タグで囲みます


4
<xmp>は廃止されただけでなく、廃止されました。使用しないでください。
ムハンマドアブドゥルラヒム2016年

W3CでGoogleをすばやく検索すると、HTML 3.2以前のフォーマット済みテキストを表示するためにXMPが導入されたことがわかります。W3CがXMPタグを非推奨にしたとき、PREタグの使用を推奨される代替案として提案しました。アップデート:w3.org/TR/REC-html32#xmpw3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 シェア編集フォローフラグ
kophygiddie

3

ブラウザにエコーするときにhtmlentitiesを使用できます。これにより、htmlがタグを解釈するのではなく、タグが表示されます。

こちらをご覧くださいhttp://uk3.php.net/manual/en/function.htmlentities.php

例:

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

出力:

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


0

別の方法があります...

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

これにより、ページ全体がプレーンテキストとして提供されます... htmlspecialcharsの方が適しています...

お役に立てれば...


0

ネイティブJavaScriptアプローチ-

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

楽しい!


1
この投稿ではJavaScriptにタグが付けられていません。
isherwood

1
ありがとうございました。それは私にとって便利です。
カンディンホアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.