PHP strip_标记,但也包括无序列表的内容

PHP strip_标记,但也包括无序列表的内容,php,Php,我使用PHP的strip_标记作为显示网页“摘要”文本的过程的一部分,但是当剥离的内容包含无序列表时,此摘要文本没有意义。这些列表在摘要中是不需要的,所以有没有办法删除ul和li html标记中的所有内容?下面是一个使用DOMdocument的解决方案 $html = <<<EOF <div id="test"> <p>Foobar</p> <ul> <li>Foo</li>

我使用PHP的strip_标记作为显示网页“摘要”文本的过程的一部分,但是当剥离的内容包含无序列表时,此摘要文本没有意义。这些列表在摘要中是不需要的,所以有没有办法删除ul和li html标记中的所有内容?

下面是一个使用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ébastien Renauld回答的密码。

添加一些代码,以便我们可以看到您正在使用的代码。下面Karl给出的html变量之类的代码已经足够接近了,只是有时会有一个类应用于ul标记。我在Statamic中作为一个插件运行这个,但这不应该混淆事情。谢谢。这适用于简单的列表,我去掉了EOF的东西。我的一些列表在ul标签中应用了一个类,这似乎阻止了它的工作。有没有办法调整它,使它在这种情况下也能工作?对于我的案例来说,这是非常复杂的。它似乎对我来说适用于列表元素上的类。你能把你的HTML和PHP脚本发布在pastebin或其他网站上吗?我错了。它似乎是它不喜欢的列表之外的锚标记。有问题的文本由ckeditor生成为:我们的目标。如果我使id和名称不同,以测试它是确定的,但否则一切都失败了。这已成为一个不同的问题,但感谢第一个问题的解决方案!