1

我想删除所有与起始 <p> 标记不匹配的标记。我有这样的:

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

但它不起作用。怎么了?

4

3 回答 3

5

使用strip_tags(),这就是它存在的目的。

$stripped = strip_tags( $str, '<p>' ); // Allow only paragraph tags

在这里演示:http ://codepad.org/NEUEBWg7

请注意,此功能不会触及允许标签上的属性。如果您正在过滤用户输入,请务必考虑诸如onclick和更多属性可能被滥用以执行一些不正当行为。

于 2012-04-26T14:27:19.760 回答
3

strip_tags 是您所需要的。只需这样做:

$result=strip_tags($html,"<p>");
于 2012-04-26T14:29:11.930 回答
2

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

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

更好的是HTML Purifier

于 2012-04-26T14:27:30.897 回答