2012-06-08 70 views
3

我需要在屏幕上以文本(而不是代码)形式打印HTML标签。Php - 将html标签打印为文本

我需要读者逐字阅读标签。

这样做的最佳做法是什么?

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

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

或以上皆非。

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

* 编辑我 *

我已经看到与性格问题 “©” 与ヶ辆()。 这只能证实我的疑惑 - 哪一个可以安全地用于所有情况 - 还有另一种将html标签作为文本打印的方式吗?

+0

感谢您的输入 - 问题不是版权符号本身。问题是在屏幕上将标签打印为可读文本,而不是在代码中打印。这个子问题是为了让所有的角色都安全,比如ÄÜÜüß°等等。即使我不知道他们会是什么.. –

回答

10

基本上所有你真的需要做HTML可读文本是:

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

htmlspecialchars基本上是htmlentities一个子集。 htmlentities对具有实体替代品的所有事物进行编码,即所有命名实体和一些代码。

+0

谢谢! - 现在工作!但是它可以处理所有内容(我不知道哪些字符会在里面,我只知道标记需要在屏幕上而不是在代码中)。另外,只是因为我想了解更多 - 如果htmlspecialchars是htmlentities的子集 - 为什么产生“”和htmlspecialchars htmlentities产生“©” –

+0

我认为你的问题与字符上使用的编码有关。我有同样的问题,但我不记得如何或甚至如果我修复它。 –