Отправить заявку

PHP Function is deprecated

С выходом версии PHP 5.3.0 некоторые функции были признаны устаревшими и были заменены на другие. Сыпались ошибки Deprecated: Function **** is deprecated. На сервере было порядка 12 сайтов и поиск текста, например, "ereg" выдал массу файлов. Со временем все они были исправлены, но нужно было молниеносно восстановить работоспособность на тот момент.

Самым правильным решением будет заменить устаревшие функции на новые (ведь не просто так разработчики их убирают?). Но, чтобы они все еще корректно работали на новом сервере нужно:

1) Открыть файл 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

2) Раскоментировать строку ;mbstring.func_overload = 0

3) Изменить значение параметра mbstring.func_overload:
Если оно равно нулю, как сейчас – это значит что все устаревшие функции отключены, и вместо них используются новые их «наследники».
Если же хотим что-нибудь включить, например, mail() и eregi(), то значение будет равно 5 (типа 1+4).
Если нужно включить str*() и eregi(), то значение будет равно 6 (4+2).

4) Перезагрузить сервер.

Другие публикации