求一个php简单的过滤除<br>,<p>,<style>html标签的正则或方法
是除上面三个标签以外,其他html标签都过滤掉,但过滤的标签里面的内容如<a>123</a>中的123需要保留...
是除上面三个标签以外,其他html标签都过滤掉,但过滤的标签里面的内容如<a>123</a>中的123需要保留
展开
3个回答
展开全部
调用下面函数,想去掉什么标签,就去掉什么
<?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 标签
?>
<?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 标签
?>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
....
<?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;
?>
<?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;
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
针对你这个<a>123</a>的例子的
$a=<<<str
<a>123</a>
str;
$preg ="/<(a)>(.*?)<\/(\1)>/is";
$str = preg_replace($preg, "<a>\\2</a>", $a);
echo $str;
除此之外PHP还有一个 过滤标签的函数 你可以看一下手册
$a=<<<str
<a>123</a>
str;
$preg ="/<(a)>(.*?)<\/(\1)>/is";
$str = preg_replace($preg, "<a>\\2</a>", $a);
echo $str;
除此之外PHP还有一个 过滤标签的函数 你可以看一下手册
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询