2011-02-28 64 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;