PHP – ошибка Deprecated: Function eregi () is deprecated in…

php-logo[1]: Function () – причина возникновения

Как оказалось, с выходом версии 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
;<strong>mbstring.func_overload</strong> = 0

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

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

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

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

service restart

Запись навигация

Top