У меня проблемы с отключением устаревших предупреждений на короткий промежуток времени. Они исходят из скрипта ненужной кучи, над которым я вынужден работать некоторое время, в котором они чрезмерно используют preg_replace с модификатором / e. Вместо того, чтобы идти и исправлять все места, которые делают это, казалось бы, лучше отключить устаревшие предупреждения, пока я работаю над этим.
Проблема, как ни странно, заключается в том, что функция error_reporting в начале сказала, что скрипт, кажется, имеет только эффект «Вкл / Выкл». То есть я могу полностью отключить отчетность error_reporting(0)
, и я могу иметь все это с чем-то вроде error_reporting(E_ALL)
, Но использование любой из следующих опций никак не влияет. Я все еще получаю более 100 устаревших предупреждений в верхней части моей страницы.
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
error_reporting(E_ALL & ~E_DEPRECATED);
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
Я проверил, что мой файл php.ini установлен в E_ALL & ~E_DEPRECATED)
(24575), и это показано как таковое в phpinfo (). Файл .htaccess в корне проекта пуст. Почему даже есть один, я не знаю.
PHP 5.5.9-1ubuntu4.4
Есть идеи?
Я бы сказал, что, вероятно, имеется другая страница или скрипт, который устанавливает error_reporting в другое значение. Ты можешь позвонить error_reporting()
без аргументов, чтобы получить текущее значение. Установите для него значение и убедитесь, что значение не изменилось после добавления других файлов.
error_reporting(E_ALL | E_STRICT);
просто говорит «эй, регистрируйте такие ошибки / предупреждения / уведомления»
Я думаю, что вам нужно —
ini_set('display_errors', '0');
Попробуйте это.
Решение :
ini_set("display_errors",'off');
Используйте это в своем PHP-скрипте. Он будет скрывать предупреждения, приходящие на вашу страницу.
Other interesting options for that function:
<?php
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL ^ E_NOTICE);
// For PHP >=5.3 use: E_ALL & ~E_NOTICE
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>