我希望删除网页上的连续链接
这是一个示例
<div style="font-family: Arial;">
<br>
<a href="http://google.com">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</a>
<a href="http://google.com">BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB</a>
Google is a search
<a href="http://www.google.com">engine</a>
在上面的html我想删除前两个A标签而不是第三个标签(我的脚本应该只删除连续的标签)
答案 0 :(得分:2)
不要使用正则表达式。它们非常强大,但不能用于找到这种“连续”标签。
我建议你使用DOM。然后,您可以将HTML作为树浏览。 这是一个例子(未经测试):
$doc = new DOMDocument();
// avoid blank nodes when parsing
$doc->preserveWhiteSpace = false;
// reads HTML in a string, loadHtmlFile() also exists
$doc->loadHTML($html);
// find all "a" tags
$links = $doc->getElementsByTagName('a');
// remove the first link
$parent = $links->item(0)->parentNode;
$parent->removeChild($links->item(0));
// test the node following the second link
if ($links->item(1)->nextSibling->nodeType != XML_TEXT_NODE) {
// delete this node ...
}
// print the modified HTML
// See DOMDocument's attributes if you want to format the output
echo $doc->saveHTML();