将HTML标签作为文本打印 - PHP

3

我需要将HTML标签作为文本打印在屏幕上(而不是在代码中)。

我需要读者字面上阅读标签。

如何最好地实现?

print htmlspecialchars('<meta name="copyright" content="© Winston Smith, 1984">');

或者

print htmlentities('<meta name="copyright" content="© Winston Smith, 1984">');

还有其他更好的方法吗?

  • 我应该考虑什么?
  • 最后一个问题 - 我应该使用print,echo还是没有区别?

*编辑 I*

我已经发现了使用htmlentities()函数时出现的字符“©”的问题。这只是证实了我的疑虑 - 哪种方法适用于所有情况 - 是否有另一种方法将html标签打印为文本?


感谢您的输入 - 问题并不在于版权符号本身。问题在于如何将标签作为可读文本打印在屏幕上,而不是代码。子问题是使其对所有字符(例如ÄÜüß°等)都安全,即使我不知道它们是什么。 - Obmerk Kronen
1个回答

10

基本上,要将HTML变得可读作为文本的核心是:

$out = strtr($input,Array("<"=>"&lt;","&"=>"&amp;"));

htmlspecialchars基本上是htmlentities的子集。htmlentities编码所有具有实体替代项的内容,即所有命名实体和少量的代码。


谢谢!现在这个可以用!但是这会适用于所有内容吗(我不知道里面会有哪些字符,我只知道标签需要出现在屏幕上而不是在代码中)。另外,仅仅因为我想更好地理解——如果htmlspecialchars是htmlentities的一个子集,为什么htmlentities会产生“©”而htmlspecialchars会产生“©”。 - Obmerk Kronen
我认为你的问题与字符编码有关。我曾经遇到过同样的问题,但我不记得我是如何或者是否解决了它。 - Scott Stevens

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