【发布时间】:2017-01-21 07:55:29
【问题描述】:
我在字符串中有 UTF-8 文本(我们称之为“纯文本”),我需要在 HTML 代码中注入该文本。
我正在使用htmlspecialchars 将特殊字符(可能出现在纯文本中)转换为 HTML 实体。
这是一个常见的问题,但是......
生成的字符串是 EMAIL 的 Html 源
所以我担心在转换过程中是否应该采取具体措施。
我知道电子邮件客户端呈现 html 的方式存在一些差异和不一致。
我经常阅读的一条经验法则是像 2001 年一样编写 HTML
htmlspecialchars适合转换任务吗?
还有我应该设置哪些标志?
我通常使用:
$html = htmlspecialchars( $text, ENT_QUOTES, 'UTF-8' );
我应该使用ENT_QUOTES | ENT_HTML401 吗?
【问题讨论】:
-
htmlspecialchars将从 HTML 转换为纯文本。你的问题意味着你想要相反的,所以你会使用html_entity_decode -
@apokryfos 可能我不清楚:我有类似
a > b的文本,并且字符串中的字符可能需要在字符串用作 HTML 之前转换为 html 实体:a > b。所以htmlspecialchars实际上是要走的路,因为手册指出htmlspecialchars — Convert special characters to HTML entities -
是的,我可能对您的措辞感到困惑。如果我需要转换的不仅仅是基本的 HTML 特殊字符,我通常会使用
htmlentities。它仍然使用相同的选项,因此当您还需要转换'、"、&、<和>以外的字符时使用它
标签: php html email html-email html-escape-characters