Недавно версия PHP 5.3 стала стабильной и набирает обороты у всех хостинг провайдеров. В одно время все CMS-ки выпустили обновления которые требуют PHP 5.3 и не ниже. Итак, сейчас уже PHP 5.3 стоит практически у каждого прогрессивного хостинг провайдера, поэтому можно смело обсуждать плюсы и минусы данной версии. Конкретной темой сегодняшней статьи будет проблема не работающих функций в новой версии.
А именно таких функций: ereg(), eregi() и split(). После переноса наших сайтов на версию PHP 5.3 начали появляться ошибки типа: Function ereg() is deprecated in, Function eregi() is deprecated in или function split() is deprecated in.
Такие ошибки довольно легко исправить, например ошибку “function split() is deprecated in” можно исправить просто заменив слово split в вашем коде на explode .
Да именно так, все очень просто, точно также можно исправить ошибку: Function ereg() is deprecated in, просто заменить ereg и eregi на preg_match. Вместо и той и той функции ставится preg_match(“/abcd/i” ). Кстати обратите внимание на delimiters. А именно в новой функции это два “слеша” выражения в “” . За последним слешем ставится “i”, если мы изменяем функцию eregi().
Ошибку Function ereg_replace() is deprecated in можно пофиксить всего лишь заменив ereg_replace на preg_replace.
Аналогичным образом решается ошибка: deprecated: function set_magic_quotes_runtime() is deprecated in
Нужно сделать так к примеру:
@set_magic_quotes_runtime(0); заменить на ini_set(‘magic_quotes_runtime’, 0);
или
@set_magic_quotes_runtime($mqr); заменить на ini_set(‘magic_quotes_runtime’, $mqr);
Также хотел бы обратить ваше внимание на то, что не стоит включать поддержку старых функций вместо того чтобы заменить их на новые, потому что в последующих релизах PHP вам все равно придется изменять их на новые, ведь все старые функции будут удалены полностью.
Оставляйте ваши отзывы или пишите ваши вопросы в комментарии, постараемся помочь если у вас возникнут трудности.
Большое спасибо за разъяснение по split, наконец-то разобрался.
Всегда рад помочь.
$entries = split(‘[, ]’, $_SERVER[‘HTTP_X_FORWARDED_FOR’]);
Что здесь надо изменить?
Вы статью читали вообще? “ошибку «function split() is deprecated in» можно исправить просто заменив слово split в вашем коде на explode .”
Благодарю автора за статью с описанием ошибки Function ereg() is deprecated in. В php полный ноль но поигравшись методом проб и ошибок, а также многократного перечитывания статьи, ошибку в CMS удалось исправить.
// а что тут надо изменить?????
LoadDefaultSettings(ELFCHAT_ROOT . ‘/settings.default.php’);
$settings->LoadSettings(ELFCHAT_ROOT . ‘/cache/settings.php’);
Elf::Set(‘settings’, & $settings);
if(!Elf::Settings(‘show_errors’))
{
error_reporting(0);
}
if(Elf::Settings(‘censure’))
{
include_once ‘lib/Censure/Censure.php’;
include_once ‘lib/Censure/ReflectionTypehint.php’;
include_once ‘lib/Censure/UTF8.php’;
}
// Skin Init
if(!defined(‘NO_SKIN’))
{
if(!defined(‘SKIN_PATH’))
{
define(‘SKIN_PATH’, ELFCHAT_ROOT . ‘/skin/’ . Elf::Settings(‘skin’));
}
$skin = new Skin(SKIN_PATH);
View::set_skin($skin);
}
// Date Init
if(!defined(‘NO_DATE’))
{
date_default_timezone_set(Elf::Settings(‘timezone’));
}
}
// Lang Init
if(!defined(‘NO_LANG’))
{
if(!defined(‘LANG’))
{
try
{
define(‘LANG’, Elf::Settings(‘lang’));
}
catch (ElfException $e)
{
define(‘LANG’, ‘en’);
}
}
if(!defined(‘LANG_FILE’))
{
define(‘LANG_FILE’, ELFCHAT_ROOT . ‘/lang/’ . LANG . ‘/lang_general.php’);
}
$lang = new Lang();
$lang->load_file(LANG_FILE);
Elf::Set(‘lang’, & $lang);
}
?>
Спасибо!
Для ошибки “Function ereg() is deprecated in” помогло!
Был рад помочь 🙂
Я участвую в акмуллинской олимпиаде
Заменил, что у меня исчезли вторые буквы моей фамилии,имени и отчества.
Там на сайте, на своём аккаунте, когда я хочу исправить фамилию имя отчество, то мне выдаёт такую строчку:
Deprecated: Function eregi() is deprecated in /da1/www/cro/action/user/save_atr.php on line 26
4
Могу ли что нибудь сделать или это вина администраторов сайта олимпиады?
К сожалению, с вашей стороны ничего сделать невозможно, проблема в том, что сайт использует диhективы, которые устарели в новых версиях PHP.
Deprecated: Function ereg() is deprecated in /home/u821458826/public_html/pages/account/_payment.php on line 37
помогите решить эту проблему!Не как не могу понять что нужно сделать!
Прочитайте статью повторно и полностью она как раз о вашей проблеме.
Подскажите пожалуйста. У меня на движке ДЛЕ возникла такая проблема: Deprecated: Function ereg_replace() is deprecated in ——————/inc/makethumb.php on line 34 Fatal error: Call to undefined function exif_imagetype() in ———————–/inc/makethumb.php on line 49. Где мне исправить ошибку?
Исправить нужно в файле ———————–/inc/makethumb.php в строке 49 и строке 34
Спасибо!
Для ergi помогло
Помогло. Не пришлось целый день убивать из-за такой мелочи. Спасибо автору.
Рад, что статья помогла вам.
Спасибо, Вам огромное =) Очень полезная информация!
четко !, по делу без всякой размазни от SEO писарей ! СПС!
Спасибо огромное. Недавно ни с того, ни с сего появились на сайте обе эти ошибки. Благодаря вашей небольшой статье всё быстро сам поправил, даже не обращаясь к программисту))
Спасибо помогло
Очень рады, что смогли вам помочь.
Спасибо, отличная статья получилась.
У меня возникла ошибка ereg() я исправил теперь все работает!
Спасибо! Помог!
Рад, что вам пригодилась информация изложенная в статье.