我知道并知道如何在php中使用strip_tags(),但我想删除这些标签中包含的所有样式。
我只需要保留以下标签
<p></p>
<a></a>
<br />
不确定br是否被认为是带有strip_tags的标记,因此我将其包括在内。
之前的例子:
<p style="font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 13px; padding: 0px; margin: 3px 0px 10px; color: rgb(0, 0, 0); line-height: 16px;">
后:
<p>
问题是我不确定我是否可以使用条带标记完成此操作,或者我是否还需要包含带有一些REGEX的preg_replace。此外,造型可能会有所不同,因此它需要能够处理任何事情。
我在php.net上找到了一个例子,但似乎无法正常工作
function strip_tags_content($text, $tags = '', $invert = FALSE) {
preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si', trim($tags), $tags);
$tags = array_unique($tags[1]);
if(is_array($tags) AND count($tags) > 0) {
if($invert == FALSE) {
return preg_replace('@<(?!(?:'. implode('|', $tags) .')\b)(\w+)\b.*?>.*?</\1>@si', '', $text);
}
else {
return preg_replace('@<('. implode('|', $tags) .')\b.*?>.*?</\1>@si', '', $text);
}
}
elseif($invert == FALSE) {
return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
}
return $text;
}
?>
<?=strip_tags_content($row['notes'])?></p>
答案 0 :(得分:1)
我会做类似的事情:
$x = preg_replace("/<(p|a|b|div) [^>]*>/", "<$1>", $x);
当然还有所有相关标签。 请注意,如果任何参数的参数为&gt;登录它所以你必须以某种方式处理报价。
答案 1 :(得分:0)
如果您只想在执行strip_tags($text, '<p><a><br>')
$("container").children().each(function()
{
$(this).attr('style','');
});
<强> Fiddle demo 强>