我有一个函数从HTML中删除href链接我正在加载到iframe中。 html是电子邮件的完整imap HTML正文。
如果有人可以提供帮助,我有2个问题。
我正在尝试删除所有链接。所以我有A和AREA href链接。有没有其他类型的链接,我没想到的?我的印象是你不能在电子邮件中使用JS,所以我不能检查JS。我想删除所有链接。我不希望电子邮件内容可以点击。
在我的函数中,如何搜索特定字符串并在找到时将其删除。具体来说,我想从html中删除电子邮件地址。 我想我可以在我的功能中包含MAILTO,但这不会涵盖所有电子邮件地址。
function stripLinks($lala){
$dom = new DOMDocument();
$htmltags = $lala;
@$dom->loadHTML($htmltags);
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$href->removeAttribute('target');
$href->removeAttribute('href');
}
$hrefs_area = $xpath->evaluate("/html/body//area");
for ($i = 0; $i < $hrefs_area->length; $i++) {
$href = $hrefs_area->item($i);
$href->removeAttribute('target');
$href->removeAttribute('href');
}
$lala=$dom->saveHTML();
return $lala;
}
这是正确的方法吗?电子邮件有几种变体,所以我可以使用外卡吗?
str_replace("email@address.com","",$lala);
return $lala;
感谢提前
解决方案#2
$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $string);