2013-02-13 94 views
0

我試圖替換介於pre標籤之間的html標籤。這就是我想做的事情:標籤之間的preg_replace標籤

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

應該有,responed預標籤

我知道一個事實,「擺脫html標籤」中指出,

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

作品,但是用空的預標籤進行響應。

我只需要刪除前標籤之間的所有html標籤。

回答

3

以下是我會做:

$str = preg_replace_callback("#(<pre[^>]*>).*?</pre>#is",function($m) { 
    return $m[1].strip_tags($m[0])."</pre>"; 
},$str); 
+0

謝謝!我希望我早點來這裏,會爲我節省5個小時:D – user2067005 2013-02-13 04:20:14

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;