求一个php简单的过滤除<br>,<p>,<style>html标签的正则或方法

是除上面三个标签以外,其他html标签都过滤掉,但过滤的标签里面的内容如<a>123</a>中的123需要保留... 是除上面三个标签以外,其他html标签都过滤掉,但过滤的标签里面的内容如<a>123</a>中的123需要保留 展开
 我来答
liruxing1715
2012-01-10 · TA获得超过241个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:99万
展开全部
调用下面函数,想去掉什么标签,就去掉什么
<?php
/**
* 去掉指定的html标签
* @param array $string
* @param bool $str
* @return string
*/
function _strip_tags($tagsArr,$str) {
foreach ($tagsArr as $tag) {
$p[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
}
$return_str = preg_replace($p,"",$str);
return $return_str;
}

$str = "<b>您好</b><input type='text' name='' /><a href='http://www.baidu.com'>百度一下,你就知道</a>";
echo _strip_tags(array("b", "input", "a"),$str); #去掉 B 标签和 INPUT 标签
?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a5fcb3ef4
2012-01-14 · 超过83用户采纳过TA的回答
知道小有建树答主
回答量:170
采纳率:100%
帮助的人:231万
展开全部
....
<?php
$str = '<br><div class="modify-answer"><style>.p{font-size:16px;}</style><p><a href="#" class="operation modify-reply-e" id="modify-reply-915754038">修改回答</a></p><br />124</div>';

$search = "/<(?!(p|\/p|br|style|\/style))[^>]*?>/si";
$replace = '';
echo preg_replace($search, $replace, $str);
?>
……………………

补充:
以上你还不满意,还有一个最简单的,使用PHP自带的函数strip_tags()
<?php
$str = '<br><div class="modify-answer"><style>.p{font-size:16px;}</style><p><a href="#" class="operation modify-reply-e" id="modify-reply-915754038">修改回答</a></p><br />124</div>';
$rr = strip_tags($str,'<style><p><br>');
echo $rr;
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
foolwind
2012-01-17 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:98.4万
展开全部
针对你这个<a>123</a>的例子的

$a=<<<str
<a>123</a>
str;
$preg ="/<(a)>(.*?)<\/(\1)>/is";
$str = preg_replace($preg, "<a>\\2</a>", $a);
echo $str;

除此之外PHP还有一个 过滤标签的函数 你可以看一下手册
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式