В последнее время все больше и больше приходит писем от наших посетителей, которые установив последнюю версию PHP 5.3.1 получают в работающих проектах подобные ошибки:
Deprecated: Function eregi() is deprecated in ...
Неприятная ситуация, когда проект работает и застает врасплох. Хорошо, что большинство хостеров не так быстро делают переход с версии PHP 5.2. на PHP 5.3. Но надолго ли?
Что такое DEPRECATED? Это некоторые параметры, функции и возможности, которые обозначены как НЕИСПОЛЬЗУЕМЫЕ и в последующих версиях будут УДАЛЕНЫ.
Для начала конечно можно временно (повторюсь временно) можно выключить в файле php.ini данные предупреждения что бы сайт восстановил работоспособность и не выдавали так же ошибки вывода заголовков Headers (популярная ошибка новичков headers already sent) В PHP 5.3. для этого добавлено 2 уровня ошибок (error level) E_DEPRECATED и E_USER_DEPRECATED, которые и управляют выводом предупреждений (Warning)
Полный список изменений вы можете увидите на официальном сайте PHP Deprecated features in PHP 5.3.x
Следующие директивы php.ini будут отмечены как НЕИСПОЛЬЗУЕМЫЕ (DEPRECATED) в PHP 5.3 и удалены в PHP 6.0.0 define_syslog_variables - теперь всегда OFF.
register_globals - теперь всегда OFF. Наконец-то! =)
register_long_arrays - $HTTP_*_VARS навсегда уйдут в небытие.
safe_mode - безопасный режим. По умолчанию OFF.
magic_quotes_gpc magic_quotes_runtime magic_quotes_sybase - будут удалены при переходе версии.
Теперь в php.ini файле нельзя будет применять коментарии, начинающиеся с #
Так же следующие функции: call_user_method() (используйте call_user_func())