Deprecated: function is deprecated in – ошибка, связанная с использованием устаревших функций в новых версиях PHP. Эти функции больше не будут использованы в языке, и их следует заменить аналогами. Касается это пользователей PHP 5.3 и выше.
Давайте разберемся, что делать дальше.
Deprecated: Function ereg() is deprecated in
Функция для работы с регулярными выражениями ereg() устарела. Вместо неё следует использовать аналогичную функцию preg_match()
Deprecated: Function eregi() is deprecated in
Как видите, в примере выше подставлен параметр «i», говорящий о том, что искать без учета регистра. Применение этого параметра в preg_match() заменяет устаревшую функцию eregi().
Deprecated: Function ereg_replace() is deprecated in
Больше функция ereg_replace() поиска и замены учитывая регистр, работать не будет. Необходимо заменить её на аналогичную функцию — preg_replace(). Синтаксис, на примере очистки строки от лишних пробелов:
Deprecated: Function eregi_replace() is deprecated in
eregi_replace() – функция поиска и замены с без учета регистра. В примере выше осуществлялся поиск по строке, в котором учитывается регистр. Используйте параметр «i» в функции preg_replace() для работы без учета регистра.
Deprecated: Function split() is deprecated in
Функции разбивки строки на массив split() – с учетом регистра, spliti() – без учета регистра, теперь считаются устаревшими. Используйте аналог preg_split(), а если необходимо без учета регистра, то preg_split() с параметром «i». Пример, без учета регистра:
Deprecated: Function session_register() is deprecated in
Используйте супер глобальный массив $_SESSION для передачи значения переменной в сессию
Deprecated: Function session_unregister() is deprecated in
Также необходимо приметь массив $_SESSION вместе с функцией unset().
Deprecated: Function session_is_registered() is deprecated in
Функция session_is_registered(), проверяющая наличие переменной в сессии, устарела. Используйте супер глобальный массив $_SESSION
Deprecated: Function mysql_db_query() is deprecated in
Функция для подключения БД и отправки запроса mysql_db_query() теперь подлежит замене. Необходимо использовать mysql_select_db() для выбора базы и mysql_query() для отправки запроса в эту БД.
Deprecated: Function mysql_escape_string() is deprecated in
Вместо данной функции используйте аналог — mysql_real_escape_string(), который может принимать дополнительные параметры для экранирования специальных символов. И главное, эта функция экранирует с учетом текущей кодировки.
My contact form is othervise working but I keep getting the following error:
Deprecated: Function ereg() is deprecated in/home/.
I’m really lost here but I figure this is the part that needs some adjusting.
Finding a solution would be highly appreciated
3 Answers 3
You must use preg_match instead of ereg because the last one is deprecated.
Replacing it is not a big deal:
p.s. I had to modify more than one hundred files while I was porting my old project to PHP 5.3 to avoid manually modifying I’ve used following script to do it for me:
I hope it helps.
The function ereg() is deprecated and should not be used any more. The documentation tells you what to do (to use preg_match instead).
Like you said — no bigie, it works like a charm:
После перехода PHP с ветки PHP 5.2 (php52-5.2.17) на PHP 5.3 на части сайтов вылезли ошибки Deprecated: Function ereg_replace() is deprecated, хорошо что первоначальный переход я начал на тестовом сервере и было время подготовится, оценить размеры работ для корректного перехода уже на рабочем сервере.
И так, в ветки PHP 5.3 начали борьбу с некоторыми старыми функциями, для начала они выводят предупреждение и сообщают что функция уже не поддерживается и в будущем будет вообще удалена. Но в версии 5.3 еще можно избежать проблем включив режим поддержки старых функций
Это делается в разделе [mbstring]
; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ; http://php.net/mbstring.func-overload ;mbstring.func_overload = 0[mbstring] mbstring.func_overload = 7
Указав значение mbstring.func_overload равное 7 мы разрешаем все старые функции.
Но это решение можно использовать только как временное, хотя зачем оно вообще?
Ведь можно пока посидеть на ветке 5.2.
Более правильное решение — это замена в коде старых функций на новые, в случае использования ereg и eregi сделать это довольно просто.
было по-старому ereg(«language»,$uri)стало по-новому preg_match(«/language/»,$uri)если было eregi, то добавляем i после разделителя-слеша preg_match(«/language/i»,$uri)
Вот такими нехитрыми манипуляциями мы переходим на следующий уровень, уровень 5.3
Фразы: проблемы с PHP 5.3, после перехода на PHP 5.3, замена старых функций 5.2, замена ereg
Источник: