我正在使用PHP的strip_tags作为显示“预告片”的过程的一部分。网页的文本,但是当剥离的内容包含无序列表时,此预告文本无效。预告片中不需要这些列表,那么有没有办法删除ul和li html标签中的所有内容?
答案 0 :(得分:0)
这是使用DOMdocument的解决方案。
$html = <<<EOF
<div id="test">
<p>Foobar</p>
<ul>
<li>Foo</li>
<li>Bar</li>
</ul>
<ol>
<li>Bar</li>
<li>Foo</li>
</ol>
</div>
EOF;
$dom = new DOMDocument;
if($dom->loadHTML($html)) {
foreach(array('ul','ol') as $listElement) {
while (($r = $dom->getElementsByTagName($listElement)) && $r->length) {
$r->item(0)->parentNode->removeChild($r->item(0));
}
}
}
$html = $dom->saveHTML();
echo trim(strip_tags($html));
我使用了SébastienRenauld的答案中的代码。 DOMDocument remove script tags from HTML source