PHP strip_tags也是无序列表的内容

时间:2014-07-20 10:05:24

标签: php

我正在使用PHP的strip_tags作为显示“预告片”的过程的一部分。网页的文本,但是当剥离的内容包含无序列表时,此预告文本无效。预告片中不需要这些列表,那么有没有办法删除ul和li html标签中的所有内容?

1 个答案:

答案 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