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 に答える