我想删除所有不匹配的标签< p>标签。 我是这样的:
preg_replace("/<(?!p)>/", "", $html);
但它不起作用。怎么了?
答案 0 :(得分:5)
使用strip_tags()
,这就是它的存在。
$stripped = strip_tags( $str, '<p>' ); // Allow only paragraph tags
在此演示:http://codepad.org/NEUEBWg7
请注意,此功能不会触及允许标签上的属性。如果您要过滤用户输入,请务必考虑使用onclick
等更多属性来滥用以执行某些狡猾的行为。
答案 1 :(得分:3)
strip_tags是你需要的。 就这样做:
$result=strip_tags($html,"<p>");
答案 2 :(得分:2)