删除php中与p标签不匹配的所有标签

时间:2012-04-26 14:25:35

标签: php regex

我想删除所有不匹配的标签< p>标签。 我是这样的:

 preg_replace("/<(?!p)>/", "", $html);

但它不起作用。怎么了?

3 个答案:

答案 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)

最基本的,使用strip_tags()删除HTML:

echo strip_tags($text, '<p>');

更好的是HTML Purifier