正如我在标题中提到的,我收到错误*警告:preg_replace():编译失败:*这对我来说真的很奇怪;
实际上在godaddy的VPS上我移动了我的网站;首先我得到了GD库的错误;所以我使用WHM的简易apache安装了GD库,
然后,当我试图运行我的网站时,我收到此警告,Warning: preg_replace(): Compilation failed: nothing to repeat at offset 5
在此页 techchef.org/development/module/newsfeed/LoadDataFromFeed.php
然而,我的另一台服务器运行相同的脚本 techchef.org/development/module/newsfeed/LoadDataFromFeed.php ,它运行良好
这是脚本我不确定是否是因为apache设置,如果是,那么实际上我错过了。
下面是它提到错误的php脚本
$str= strtolower($str);
$str= preg_replace("/(à|á|?|?|ã|â|?|?|?|?|?|a|?|?|?|?|?)/","a",$str);
$str= preg_replace("/(è|é|?|?|?|ê|??|?|?|?|?)/","e",$str);
$str= preg_replace("/(ì|í|?|?|i)/","i",$str);
$str= preg_replace("/(ò|ó|??|??|õ|ô|?|?|?|?|?|o|??|?|?|?|?)/","o",$str);
$str= preg_replace("/(ù|ú|?|?|u|u|?|?|?|?|?)/","u",$str);
$str= preg_replace("/(?|ý|?|?|?)/","y",$str);
$str= preg_replace("/(d)/","d",$str);
$str= preg_replace("/(!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'| |\"|\&|\#|\[|\]|~|$|_)/","-",$str);
$str= preg_replace("/(-+-)/","-",$str);
$str= preg_replace("/(^\-+|\-+$)/","",$str);
$str= preg_replace("/(-)/"," ",$str);
答案 0 :(得分:3)
当您从格式化/编码的任何地方复制代码时。
$str= preg_replace("/(à|á|?|?|ã|â|?|?|?|?|?|a|?|?|?|?|?)/","a",$str);
// ^- offset 5
受过教育的猜测,这[和所有其他问号]应该是另一个a
- 类似的字符,而不是问号。 ?
是与重复[0或1]相关的元字符,应该为文字?
进行转义。
其他表达也一样。