我尝试过一些解决方案,只删除标签本身,留下内容和任何其他嵌套
正则表达式,
preg_replace('/<span\b[^>]*>(.*?)<\/span>/ig', '', $page->body);
也尝试使用HTML净化器,
$purifier->set('Core.HiddenElements', array('span'));
$purifier->set('HTML.ForbiddenElements', array('span'));
答案 0 :(得分:2)
根据您的实际字符串和您尝试过的内容,您可以使用正则表达式(假设您的span标记只是span标记)。 一个更合适的&#34;然而,解决方案是使用像DomDocument这样的html解析器。
您可以使用函数document.getElementsByName("span");
获取所有span元素并将其从文档对象中删除
然后使用saveHTML获取html代码。
你会得到这样的东西:
$doc = new DOMDocument;
$doc->load($yourpage);
$root = $doc->documentElement;
// we retrieve the spans and remove it from the book
$spans = $book->getElementsByTagName('span');
foreach ($spans as $span){
$root->removeChild($span);
}
echo $doc->saveXML();