0

我试图替换 pre 标签之间的 html 标签。这就是我想要它做的:

$str = '<pre><div>Get<p>rid</p> of html tags</div></pre>';
$str = preg_replace('#(<pre.*?>)/<[^<>]+>/(</pre>)#', '$1$2', $str);
echo $str;

它应该在 pre 标签中响应“摆脱 html 标签”

我知道一个事实,

$str = preg_replace('#(<pre.*?>).*?(</pre>)#', '$1$2', $str);

有效,但以空的 pre 标签响应。

我只需要删除 pre 标签之间的所有 html 标签。

4

2 回答 2

3

这是我的做法:

$str = preg_replace_callback("#(<pre[^>]*>).*?</pre>#is",function($m) {
    return $m[1].strip_tags($m[0])."</pre>";
},$str);
于 2013-02-13T04:13:39.287 回答
0
$str = '<pre><div>Get<p>rid</p> of html tags</div></pre>';
if(preg_match("/<pre>(.+?)<\/pre>/i", $str,$res))
{
  $str=strip_tags($res[1]);
}
echo $str;
于 2013-02-13T04:18:12.570 回答