$mystring="This is mystring. <a href='http://www.google.com'>Google.</a>";
$dom = new DOMDocument;
$dom->loadHTML($mystring);
$xPath = new DOMXPath($dom);
$nodes = $xPath->query('//a');
if($nodes->item(0)) {
$nodes->item(0)->parentNode->removeChild($nodes->item(0));
}
echo $dom->saveHTML();
我想获得输出:
这是神秘的。谷歌。
但我得到了:
这是神秘的。
答案 0 :(得分:4)
尝试以下方法:
if($nodes->item(0)) {
$node = $nodes->item(0);
$node->parentNode->replaceChild(new DOMText($node->textContent), $node);
}
答案 1 :(得分:-1)
或者,使用简单的技巧来做简单的事情。
这是strip_tags()
的替代方法preg_replace('#<a.*?>(.*?)</a>#i', '\1', $text)
答案 2 :(得分:-2)
“Google”是您要删除的节点的子节点。所以这种行为是预期的。我想你想要的是使用PHP的strip_tags函数。
echo strip_tags("This is mystring. <a href='http://www.google.com'>Google.</a>");