2011-02-28 68 views
0

任何人都可以找到此錯誤的解決方案,預浸替換錯誤

 $str= trim(strip_tags($str)); 

$str = preg_replace("'<style[^>]*>.*</style>'siU",'',$str); 

    $patterns = array(); 
$patterns[0] = '&nbsp; '; 
$patterns[1] = ' &nbsp;'; 
$patterns[2] = '&nbsp;'; 
$replacements = array(); 
$replacements[0] = ''; 
$replacements[1] = ''; 
$replacements[2] = ' '; 

$str = preg_replace($patterns, $replacements, $str); 

它顯示這個錯誤。

消息:的preg_replace()[function.preg替換]:沒有結束符 '&' 發現

-Arun

回答

0

模式中的第一個字符被解釋爲分隔符,現在PHP認爲您想使用&作爲分隔符。在你的第一個正則表達式中,分隔符是',順便說一句。我猜你真正想要的不是'&nbsp;',而是'/&nbsp;/'(例如對於模式2),現在/是分隔符(它不是正則表達式本身的一部分)。順便說一句,你的第一個正則表達式似乎不正確或者,它可能應該是

'<style[^>]*>[^<]*</style>' 

否則,正則表達式可以在第一標籤和整個文檔的最後一個標籤相匹配。

0

你有錯誤代碼anwser,正則表達式需要分隔符的工作。

而且您應該使用str_replace代替&nbsp;