如何去掉某些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/