检查电子邮件内容是纯文本还是HTML - PHP

时间:2015-05-16 10:25:30

标签: php html regex codeigniter

使用Code Igniter框架,我正在使用Peeker库检索电子邮件。有时我不接收HTML内容,只收到电子邮件的plain text。 对于纯文本,我想将\r\n替换为<br>,而不是替换为HTML内容。 我从function获得了以下SO来检查内容是否为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。 如何区分?

1 个答案:

答案 0 :(得分:2)

由于我知道将出现<div><table>标记,因此我对正则表达式进行了以下更改,并且效果非常好。

preg_match("/<tr [\s\S]*?<\/tr>|<table [\s\S]*?<\/table>|<div [\s\S]*?<\/div>",$string) != 0;