如何去掉某些html标记并允许其中一些标记?
例如,
我想去掉span标记,但允许带下划线的span

<span style="text-decoration: underline;">Text</span>

我想允许p但我想删除p中的任何样式或类,例如,
<p class="99light">Text</p>应该删除p标记中的类-我只想要一个干净的p标记。
这是我目前的底线,
strip_tags($content, '<p><a><br><em><strong><ul><li>');

最佳答案

不可以。您需要使用XML/HTML解析器来执行此操作:

// with DOMDocument it might look something like this.
$dom = new DOMDocument();
$dom->loadHTML( $content );
foreach( $dom->getElementsByTagName( "p" ) as $p )
{
    // removes all attributes from a p tag.
    /*
    foreach( $p->attributes as $attrib )
    {
        $p->removeAttributeNode( $attrib );
    }
    */
    // remove only the style attribute.
    $p->removeAttributeNode( $p->getAttributeNode( "style" ) );
}
echo $dom->saveHTML();

关于php - strip_tags:去除凌乱的标签和样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6792203/

10-11 13:32
查看更多