如何将HTML标签显示为纯文本

260

我的网站上有一个输入表单,允许使用HTML,并且我正在尝试添加关于如何使用HTML标签的说明。我希望文本

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

但是到目前为止,我得到的都是:

看起来就像这一行 - 所以知道如何输入它

我如何显示标签,让人们知道要输入什么?

11个回答

371

<替换为&lt;,将>替换为&gt;


7
从技术上讲,你只需要将 < 替换为 <,大多数浏览器都能够识别,但是将 > 替换为 > 是一个好习惯。 - cwallenpoole
11
@Darm未提及htmlspecialchars(),因此扣1分。如果有合理的理由,请纠正我 :) - Ronen Ness
7
如果这个问题的文本是由PHP生成的,htmlspecialchars()会执行这个答案所建议的操作:用它们的HTML实体替换小于号和大于号(以及其他字符)。但是这个问题没有具体说明,因此这个更一般的答案是所有特定于PHP的答案的超集。而这个问题实际上是关于HTML的。 - handle
与其他评论的相反,这个答案让我节省了100%的时间。在这里找到的一些答案会建议你只需使用php和**echo"<? //like this ?>";**但这根本没有帮助,仍然不显示。另一方面,这个答案总共为我节省了17个字符,加上@handle的观点,所以我投了赞成票。 - ailia

257

在 PHP 中使用函数 htmlspecialchars() 来转义 <>

htmlspecialchars('<strong>something</strong>')

74

正如许多人所说,htmlentities() 可以解决问题... 但它会看起来很糟糕。

<pre>标签把代码包起来,就可以保留缩进了。

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

43
您应该使用 htmlspecialchars 函数。它将字符替换为以下内容:
  • &(和号)将变成 &amp;
  • "(双引号)如果 ENT_NOQUOTES 没有设置,则变成 &quot;
  • '(单引号)如果 ENT_QUOTES 设置了,则变成 &#039;
  • <(小于号)将变成 &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;
?>

8

您只需要对<>进行编码:

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

6
为了在浏览器中显示HTML标签,需要使用<xmp>和</xmp>标签将输出内容包围起来。

6
"<xmp>"现在已经过时,不仅是被弃用的。请勿使用。 - Muhammad Abdul-Rahim
1
通过快速的Google搜索,我们可以发现W3C最初是在HTML 3.2及更早版本中引入XMP标签来展示预格式化的文本。但是随着W3C弃用了XMP标签,建议使用PRE标签作为首选替代方案。更新链接:http://www.w3.org/TR/REC-html32#xmp, http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.5.2.1 - kophygiddie

4

当向浏览器输出内容时,您可以使用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>

3
原生JavaScript的方法 -
('<strong>Look just ...</strong>').replace(/</g, '&lt;').replace(/>/g, '&gt;');

请享用!


1
这篇文章中没有标记 JavaScript。 - isherwood
4
谢谢。这对我很有用。 - Khang Dinh Hoang

1

使用htmlentities()将会把那些本应以HTML形式显示的字符进行转换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接