Ошибка Deprication или переход на версию PHP 5.3
Уважаемые пользователи.
Прогресс не стоит на месте и мы всегда стараемся идти в ногу со временем.
Прогрессирует и всеми нами любимый PHP...
Переписывая основной сайт redz.ru и подготавливая новую панель управления, которую вы в ближайшем будущем уже увидите, мы столкнулись с некоторыми особенностями.
Переход на PHP 5.3 мы прогнозируем на вторую половину апреля 2010 года.
То с чем вы можете столкнуться с переходом с PHP 5.2 на PHP 5.3:
Основная ошибка:
Deprecated: Function eregi() is deprecated in ...
Что такое DEPRECATED? Это некоторые параметры, функции и возможности, которые обозначены как НЕИСПОЛЬЗУЕМЫЕ и в последующих версиях будут УДАЛЕНЫ.
Для начала конечно можно временно (повторюсь временно) можно выключить в файле php.ini (но мы этого не будем делать осознанно) данные предупреждения, чтобы сайт восстановил работоспособность и не выдавал так же ошибки вывода заголовков Headers (популярная ошибка новичков headers already sent) В PHP 5.3. для этого добавлено 2 уровня ошибок (error level) E_DEPRECATED и E_USER_DEPRECATED, которые и управляют выводом предупреждений (Warning)
Полный список изменений вы можете увидите на официальном сайте PHP: http://php.net/manual/en/migration53.deprecated.php
Следующие директивы 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 - будут удалены при переходе версии.
Так же следующие функции:
* call_user_method() (используйте call_user_func())
* call_user_method_array() (используйте call_user_func_array())
* define_syslog_variables()
* dl()
* ereg() (используйте preg_match())
* ereg_replace() (используйте preg_replace())
* eregi() (используйте preg_match() с модификатором 'i')
* eregi_replace() (используйте preg_replace() с модификатором 'i')
* set_magic_quotes_runtime() и ее синоним(alias) magic_quotes_runtime()
* session_register() (используйте $_SESSION)
* session_unregister() (используйте $_SESSION)
* session_is_registered() (используйте $_SESSION)
* set_socket_blocking() (используйте stream_set_blocking())
* split() (используйте preg_split())
* spliti() (используйте preg_split() с модификатором 'i')
* sql_regcase()
* mysql_db_query() (используйте mysql_select_db() и mysql_query())
* mysql_escape_string() (используйте mysql_real_escape_string())
И следующие возможности:
* В new передача параметра по ссылке в переменную
* Вызов call-time функций, методов и классов по ссылке
* Использование {} для указания смещения внутри строки. Теперь это можно сделать с помощью [] (как в массиве)
Следует позаботиться о замене функций аналогами, описанными выше и переписать скрипты.




