[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Deprecated ereg_replace
Владимир55
После перехода на версию 5.3 при работе скрипта выводятся сообщения:

Deprecated: Function ereg_replace() is deprecated in csv.php on line 198


Сам код:
if ($artikul != ereg_replace("[^-a-zA-Z0-9/. ]", "", $artikul))


Насколько существенно это замечание и что с ним делать?
innovate
deprecated - устаревшая.

мануал
Владимир55
Я понимаю, что устаревшая. Волнует замечание: "Крайне не рекомендуется полагаться на эту возможность.". Хотя работает нормально.

А как это заменить на более современную (в регулярках плоховато разбираюсь)?

innovate
В регулярных не силен.

Можно просто убрать варнинг:
if ($artikul != @ereg_replace("[^-a-zA-Z0-9/. ]", "", $artikul))

но лучше не игнорировать.
Владимир55
Нет, так неохота, уж лучше заменить на что-то более корректное.

Но вот на что?

Может, кто-нибуть подскажет?
Rand
Плохо читаете, на той же странице мануала
Цитата
С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE.

Далее:
Цитата
Подсказка
Функция preg_replace(), которая использует Perl-совместимый синтаксис регулярного выражения, часто является более быстрой альтернативой функции ereg_replace()
Владимир55
Цитата (Rand @ 6.04.2013 - 13:59)
Плохо читаете, на той же странице мануала

Читаю-то я хорошо, да разбираюсь плохо...

Вы хотите сказать, что будет идентично:
if ($artikul != ereg_replace("[^-a-zA-Z0-9/. ]", "", $artikul))
if ($artikul != preg_replace("[^-a-zA-Z0-9/. ]", "", $artikul))

Rand
почти так, только стоит добавить границы выражения, и возможно параметры, какие нужно:
if ($artikul != preg_replace("#[^-A-z0-9/. ]#i", "", $artikul))

Хороший ресурс по регуляркам: http://www.pcre.ru/docs/php/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.