2

给定以下html:

<p>I am a paragraph</p>

<ul>
<li>Item</li>
<li>Item 2</li>
</ul>

<div class="special_div_from_email_client">
<span>Some text

我需要去掉不完整的标签。

我们正在尝试做的是通过在原始消息中放置一个自定义字符串来解析电子邮件消息,以便如果它包含在响应中,它可以被剥离。假设是,如果电子邮件程序将原始消息包含在任何 html 标记中,我们希望删除封闭的 html 标记。

4

2 回答 2

2

这可能不是您正在寻找的内容,但我发现删除无效标签有时会破坏您的 HTML 电子邮件的其余部分(特别是如果您使用表格进行布局TR,还有标签)。TD

使用这些库/工具之一为您完成/修复 HTML 可能会更好。然后,您可以遍历有效 HTML 中的 DOM 以删除/修改元素。

这可能看起来很长,但我希望这会有所帮助。

于 2013-09-25T11:35:22.760 回答
0

你提到你在原件中放了一个字符串。如果将其放在原始邮件正文之前,您不能这样做 strpos 和 substr 来修剪您的电子邮件吗?这是一个我刚刚放在一起的函数作为示例:

// myKey can be a comment before the body of your message, $html is your email content
function trim($html, $myKey){
  $htmlTrimmed = $html;
  if (strpos($html, $myKey)!==false){
    $origStart = strpos($html, $myKey);
    $htmlTrimmed = substr($html, 0, $origStart);
  }
  return $htmlTrimmed;
} 

我没有测试它,但你明白了。

于 2013-09-25T13:02:06.243 回答