【发布时间】:2015-07-28 06:17:31
【问题描述】:
在 Code Igniter 框架上工作,我正在使用 Peeker 库检索电子邮件。有时我没有收到 HTML 的内容,只是电子邮件的 plain text。
对于纯文本,我想用<br> 替换\r\n,但不是HTML 内容。
我从SO 得到了下面的function 来检查内容是否是HTML:
function is_html($string)
{
return preg_match("/<[^<]+>/",$string,$m) != 0;
}
以下是我收到的几条纯文本:
On 5/15/15, Mr.X wrote:
> Mr. Y,
>
> Congratulations! Your book has been approved by our Editorial Board for
> Publishing. Please send me all the fonts that you have used to type
> your manuscript. Please send me the font names and the font files so that
> we can proceed.......
但该函数也为纯文本返回TRUE。
如何区分?
【问题讨论】:
-
通过
$message->get_header_array();你会得到内容类型 na ?我不习惯使用 Peeker,但在文档中找到了这个 ^^ -
问题是我没有在数据库中存储内容类型。所以我必须从电子邮件内容中以某种方式区分
-
我疯了...,你试过比较
strlen($content)和strlen(strip_tags($content))吗? -
或者你可以使用 "/]+>/"
-
@Bob0t 感谢您的建议,但我通过修改正则表达式解决了它,因为我知道几乎所有 html 内容中都会出现 div 或 table
标签: php html regex codeigniter