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

检查电子邮件内容是纯文本还是HTML-PHP,php,html,regex,codeigniter,Php,Html,Regex,Codeigniter,在CodeIgniter框架上工作时,我使用Peek库检索电子邮件。有时我不接收HTML内容,只接收电子邮件的纯文本。 对于纯文本,我希望将\r\n替换为,但不用于HTML内容。 我从SO获得了下面的函数来检查内容是否为HTML: function is_html($string) { return preg_match("/<[^<]+>/",$string,$m) != 0; } 但是对于纯文本,函数也返回TRUE。 如何区分?因为我知道会出现或标记,所以我对正则表达

在CodeIgniter框架上工作时,我使用Peek库检索电子邮件。有时我不接收HTML内容,只接收电子邮件的纯文本。 对于纯文本,我希望将
\r\n
替换为

,但不用于HTML内容。 我从
SO
获得了下面的
函数来检查内容是否为HTML:

function is_html($string)
{
  return preg_match("/<[^<]+>/",$string,$m) != 0;
}
但是对于纯文本,函数也返回
TRUE

如何区分?

因为我知道会出现
标记,所以我对正则表达式进行了以下更改,它工作得非常好

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

preg_match(“/通过
$message->get_header_array()”
您将获得内容类型na?我不习惯使用Peek,但在doc^^中发现了这一点。问题是我没有将内容类型存储在数据库中。因此,不知何故,我只需从电子邮件内容中区分为“疯狂…”,您是否尝试过比较
strlen($content)
strlen(strip_tags($content))
?或者您可以使用“/”@Bob0t-Thanx作为建议,但我通过修改正则表达式解决了这个问题,因为我知道几乎所有html内容中都会出现div或table