Функция ereg_replace() устарела - Как очистить эту ошибку?

Я написал следующий код PHP:

$input="menu=1&type=0&";

print $input."<hr>".ereg_replace('/&/', ':::', $input);

После запуска приведенного выше кода, он выдает следующее предупреждение,

Устаревший: функция ereg_replace() устарела

Как я могу решить это предупреждение.

6 ответов

Решение

Переключиться на preg_replace Документы и обновите выражение, чтобы использовать синтаксис preg (PCRE) вместо синтаксиса ereg (POSIX), где есть различия вдокументах (так же, как сказано в руководстве по ereg_replace Документы).

print $input."<hr>".ereg_replace('/&/', ':::', $input);

становится

print $input."<hr>".preg_replace('/&/', ':::', $input);

Еще пример:

$mytext = ereg_replace('[^A-Za-z0-9_]', '', $mytext );

изменено на

$mytext = preg_replace('/[^A-Za-z0-9_]/', '', $mytext );

Измените вызов на ereg_replace, чтобы вместо него использовать preg_replace

http://php.net/ereg_replace говорит:

Примечание. Начиная с PHP 5.3.0 расширение regex устарело в пользу расширения PCRE.

Таким образом, http://php.net/preg_replace во всех отношениях является лучшим выбором. Обратите внимание, что есть некоторые различия в синтаксисе паттернов.

Вот дополнительная информация о замене ereg_replace на preg_replace

IIRC они предлагают использовать preg_ функции вместо (в этом случае, preg_replace).

Другие вопросы по тегам