0

我编写了一个脚本来从我的 IMAP 服务器中检索电子邮件。一切正常。

我想保留一些 HTML 标签,因此编写了额外的代码来去除我允许的列表中不包含的标签 - 再次,一切正常。

我的问题是收到的一些电子邮件包含我也想删除的其他内容。例如,最近收到的一封电子邮件包含...

v:* {behavior:url(#default#VML);} o:* {behavior:url(#default#VML);} w:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}

在电子邮件内容的顶部。

如何删除此类内容以确保仅捕获实际的电子邮件内容?

我宁愿不使用纯文本内容(除非这是电子邮件中的唯一内容),因为电子邮件可能包含链接或强调我需要维护的某些短语。

谢谢迈克

4

1 回答 1

0

您可以使用preg_replace()跳过一些不需要的内容。

尝试类似:

$str = "
content
v:* {behavior:url(#default#VML);}
some other content
o:* {behavior:url(#default#VML);}
some other content
w:* {behavior:url(#default#VML);}
some other content
.shape {behavior:url(#default#VML);}
some other content
" ;

$str = preg_replace('~([a-z]:\*|\.shape) \{(.*?)\}~', '', $str);
var_dump($str) ;

将输出:

string(89) "
content

some other content

some other content

some other content

some other content
"
于 2018-01-27T12:31:49.653 回答