Заменить ereg_replace на preg_replace

Привет, нужно изменить функцию ereg_replace("[\]", "", $theData) preg_replace

4 ответа

Решение

В порт ereg_replace в preg_replace вам нужно поместить регулярное выражение между парой разделителя

Также ваш Регкс [\] недопустимо использовать для preg_replace как \ избегает закрывающего класса char ]

Правильный порт

preg_replace('/[\\\]/','',$theData) 

Кроме того, поскольку у класса char есть только один тип char, нет никакой необходимости в классе char, вы можете просто сказать:

preg_replace('/\\\/','',$theData) 

Поскольку вы заменяете только один символ, использовать регулярные выражения для этого не рекомендуется. Вы должны использовать простую замену текста, используя str_replace как:

str_replace('\\','',$data);
str_replace("\\","",$theData);

Но я серьезно сомневаюсь, что вам нужна эта замена вообще. Скорее всего, вам нужна другая операция.
Чем это заменить?

preg_replace("/\\\/", "", $theData);

Я использовал этот sed для автоматической замены ereg_replace на preg_replace и вставил необходимые косые черты. Предполагается, что нет \"в первом регулярном выражении

 sed -i 's#ereg_replace("\([^"]*\)"#preg_replace("/\1/"#g' *.php
Другие вопросы по тегам