Отключение строгих стандартов в PHP 5.4
в настоящее время я запускаю сайт на php 5.4, до этого я запускал свой сайт на 5.3.8. К сожалению, php 5.4 сочетает в себе E_ALL и E_STRICT, что означает, что моя предыдущая настройка для error_reporting не работает сейчас. Мое предыдущее значение было E_ALL & ~E_NOTICE & ~E_STRICT должен ли я просто включить значения по одному?
у меня слишком много ошибок и файлы содержат слишком много кода для меня, чтобы исправить.
5 ответов:
как комментаторы указали лучшие исправить ошибки, но с ограниченным временем или знаниями, это не всегда возможно. В вашем php.ini изменить
error_reporting = E_ALLдо
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICTесли у вас нет доступа к PHP.Ини, вы можете поместить это в ваш .файл htaccess:
php_value error_reporting 30711это значение E_ALL (32767) и удаление значений E_STRICT (2048) и E_NOTICE (8).
если у вас нет доступа к.файл htaccess или он не включен, вам, вероятно, нужно будет поместить это в верхней части раздела PHP любого скрипта, который загружается из вызова браузера:
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);один из них должен помочь вам использовать программное обеспечение. Уведомления и строгий материал являются индикаторами проблем или потенциальных проблем, хотя и вы можете найти некоторые из кода не работает правильно в PHP 5.4.
надеюсь, что это помогает.
.htaccess php_value работает только в том случае, если вы используете PHP Server API в качестве модуля веб-сервера Apache. IfModule используйте следующий синтаксис:
# PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value error_reporting 30711 </IfModule>если вы используете PHP Server API CGI / FastCGI используйте
ini_set('error_reporting', 30711);или
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);в вашем PHP коде, или файлы конфигурации PHP .пользователь.ini / php.модификация ini строчку:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICEна виртуальном хосте, на уровне сервера.
это сработало для меня, когда я установил error_reporting в двух местах одновременно
где-то в PHP-кодini_set('error_reporting', 30711);
и в .htaccess filephp_value error_reporting 30711
Если Вам также нужно отключить E_DEPRACATED, используйте:
php_value error_reporting 22527в моем случае CMS Made Simple жаловался "E_STRICT включен в error_reporting", а также"e_deprecated включен". Добавляя эту одну строку .htaccess решил обе неправильные конфигурации.
Heads up, вам может потребоваться перезапустить LAMP, Apache или что-то еще, чтобы это повлияло на вас. Некоторое время мы ломали голову над этим, казалось, не повлияли, пока службы не были перезапущены, предположительно потому, что веб-сайт был кэширован.
Comments