$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();
I want to get output:
This is mystring. Google.
But i got just:
This is mystring.
Try the following:
if($nodes->item(0)) {
$node = $nodes->item(0);
$node->parentNode->replaceChild(new DOMText($node->textContent), $node);
}
Or, Use simple techniques to do simple things.
Here is an alternative to strip_tags()
preg_replace('#<a.*?>(.*?)</a>#i', '\1', $text)
"Google" is a child of the node you are trying to remove. So this behavior is expected. I think what you want is to use PHP's strip_tags function.
echo strip_tags("This is mystring. <a href='http://www.google.com'>Google.</a>");
echo strip_tags($string, '<span><p><div>");
< - kingcoyote 2012-04-04 00:34