2013-09-26 3 views
0

Как я упоминал в заголовке, я получаю сообщение об ошибке * Warning: preg_replace(): Ошибка компиляции: *, что действительно странно для меня;Предупреждение: preg_replace(): Ошибка компиляции: ничего не повторить при смещении 5

на самом деле на VPS godaddy я переехал мой сайт; сначала я получил ошибку в библиотеке GD; поэтому я установил библиотеку GD с помощью простой апача из WHM, то теперь, когда им пытаются запустить свой веб-сайт, я получаю это предупреждение, 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 и она отлично работает

здесь сценарий я не уверен, если это из-за апача настроек , если да, то на самом деле я пропустил.

Ниже приведен скрипт, для которого он упомянул об ошибке

$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

Не знаю, в чем проблема, но этот код кричит рефакторинг. Что вы пытаетесь сделать точно? – elclanrs

+0

Попробуйте прокомментировать все, а затем раскомментируйте строки один за другим, чтобы выяснить, какой именно разрыв –

+0

Возможно, вас заинтересует http://www.php.net/manual/en/function.iconv.php – PeeHaa

ответ

3

Когда вы скопировали код, где бы вы потеряетесь форматирование/кодирование.

$str= preg_replace("/(à|á|?|?|ã|â|?|?|?|?|?|a|?|?|?|?|?)/","a",$str); 
         // ^- offset 5 

Образованные догадка, это [и все другие знаки вопроса] должен быть другой a -как характер, а не знак вопроса. ? - это метасимвол, используемый для повторения [0 или 1] и должен быть экранирован для литерала ?.

То же самое относится к другим выражениям.

+0

спасибо, буди, позволь мне попробовать – TechChef

+0

человек, которого ты качаешь !!! – TechChef

Смежные вопросы