PHP – ошибка Deprecated: Function eregi() is deprecated in… [решение]

просмотров: 5368217 августа 2011 года

После установки новой версии PHP v5.3.0, начала появляться ошибка:

Deprecated: Function eregi() is deprecated in ...file... on line 33

У меня, эта ошибка появлялась в движке ExpressionEngine - в админку зайти не возможно, другие скрипты тоже глючат, а некоторые не работают.

Deprecated: Function eregi() – причина возникновения

Как оказалось, с выходом версии PHP 5.3.0 некоторые функции были признаны устаревшими/отстойными/ненадежными, и были заменены на другие. Очень много современных скриптов уже переписаны с учетом новых функций, но что делать, если у меня старый скрипт, и по каким-то причинам не могу его переписать?

Решение проблемы

Проблему можно решить несколькими способами:

  1. Дождаться обновлений / отписать разработчикам скриптов
  2. Откатиться до предыдущей версии PHP
  3. Настроить текущую версию PHP

Как оказалось, разработчики PHP решили оставить директиву для включения "старых" функций, скорее всего это сделано временно, для того, чтобы все могли плавно переписать свои скрипты. Но нам необходимо, чтоб всё работало сейчас - воспользуемся этой директивой:

И так, находим файл php.ini, а в нем строки:

; 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
;mbstring.func_overload = 0

Последняя строка - и есть наш параметр mbstring.func_overload. Раскомментируем его.
Значение параметра должно ровняться сумме чисел включаемых функций.

Например, чтоб включить функции mail() и ereg*() - необходимо вписать туда 1+4=5

Я включу все старые функции: mbstring.func_overload = 7

После сохранения файла настроек, производим перезагрузку сервера apache:

service httpd restart

 

Все. Должно работать.

Поделиться

Комментарии (27)

Antioneladdy (30 июня 2019 года, 16:18:10)

Hello there! <a >pharmacy degree online</a> good web site.

bogdandut (7 июля 2019 года, 14:22:27)

защитное стекло blackview a20: https://smartera.in.ua/steklo-zashchitnoe-blackview-a20-a20-pro

abbakoptof (7 июля 2019 года, 21:33:47)

test

MichaelRella (10 июля 2019 года, 01:26:06)

Hi there! <a >pharmacy technician online program</a> very good web page.

MichaelRella (11 июля 2019 года, 16:11:10)

Hello there! <a >pharmacy technician online</a> beneficial web site.

DouglasSlOrp (13 июля 2019 года, 22:41:53)

Hi! <a >are online pharmacies legit</a> beneficial web page.

Danielthula (14 июля 2019 года, 19:04:44)

Howdy! <a >buy cialis pills</a> very good website.

 < 1 2

Что скажем?