在我的应用程序中,我正在使用PHP处理邮件文本。对于某些邮件客户端(如sina.com)发送错误标题。例如,他们正在发送HTML邮件,但将头部Content-Type作为text/plain发送。检测纯文本或html
现在,对于这些邮件,我的应用程序正在将HTML视为文本。在PHP中,如何检测文本是否包含html文本?
在我的应用程序中,我正在使用PHP处理邮件文本。对于某些邮件客户端(如sina.com)发送错误标题。例如,他们正在发送HTML邮件,但将头部Content-Type作为text/plain发送。检测纯文本或html
现在,对于这些邮件,我的应用程序正在将HTML视为文本。在PHP中,如何检测文本是否包含html文本?
是的,你可以使用strip_tags()
和比较过滤后的邮件正文与原始邮件正文有什么区别,但不要忘记,纯文本中可能有HTML标签作为普通文本,我认为strip_tags()
将删除这些标签也是。
对不起@ Wh1T3h4Ck5,没有读你的整个答案。删除我的评论。 – Knarf 2011-03-29 07:35:49
使用[strip_tag](http://php.net/manual/en/function.strip-tags.php)并将其作为文本发送,或者您可以比较此功能前后的字符串 – diEcho 2011-03-29 06:44:37
从哲学角度查看,你的应用程序**不应该**尝试纠正*明显不正确的* MIME头。如果邮件标记为“text/plain”,那么您应该将其视为“text/plain”,* not *“text/html”。内容类型嗅探是使IE成为安全噩梦的许多因素之一,并且你不想走上同一条路。 – Charles 2011-03-29 06:45:56
不是一个确切的解决方案,但是您可以使用strip_tags来仅制作所有内容文本。另一种选择是使用任何html标签的正则表达式,但我不够熟练地用正则表达式来编写它。 :) – 2011-03-29 06:46:54