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

просмотров: 4924817 августа 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

 

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

Поделиться

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

Елена Кожемяко (17 ноября 2013 года, 15:40:07)

Спасибо Вам! Мне помогло, все работает)

Гость (5 декабря 2013 года, 18:54:53)

Спосиба помогли.

Robertdar (30 августа 2018 года, 12:31:02)

Привет!
Нашел интересные новости на этом сайте:  http://limonos.ru :
http://limonos.ru/foto-prikoly-interesnoe/1850-dom-na-krayu-obryva-s-vidom-na-okean.html <b> Дом на краю обрыва с видом на океан </b>
<a > Как снимался фильм «Жестокий романс» </a>
http://limonos.ru/foto-prikoly-interesnoe/4735-spisok-samyh-izvestnyh-snayperskih-vintovok.html

sumin_love (17 сентября 2018 года, 09:51:22)

Я думаю, что Вы не правы. Пишите мне в PM.

GenadiyRum (19 сентября 2018 года, 10:46:51)


В прошлом году BAROMETER за три дня собрал в КВЦ «Парковый», пожалуй, всех, кто имеет отношение к барной культуре: от любителей коктейлей до легендарных гуру и звезд барного мира.
Только цифры: три дня, 25 тысяч гостей, 75 тысяч коктейлей, 14 тонн льда, более 20 тысяч бокалов, 57 лекций, 39 дегустаций, 74 спикера из разных уголков планеты.
В зоне баров была максимальная концентрация лучших коктейлей, разработанных специально на три дня фестиваля. Напитки в виде мороженного, со сладкой ватой, маршмеллоу, чернилами каракатицы, еловыми шишками, облепихой, инжиром, аквавитом, кумысом, лавандой, шоколадными трюфелями…
У гостей BAROMETER была возможность посетить в одном месте 24 бара из Нью-Йорка, Парижа, Осло, Тель-Авива, Алматы, Минска, Киева. В том числе бары из списка топ-50 лучших в мире.
В этом году организаторы BAROMETER – Клуб отельеров и рестораторов Hoteliero – обещают еще больше баров из разных уголков планеты, еще интереснее темы и грандиознее выступления спикеров.
Заказать билет за 200 грн. на барный фестиваль  BAROMETER Bar Show Вы можете у наc на сайте https://barometer.show/ru/ Скидки для большой компании!

Что скажем?