Как отключить уведомления PHP? - PullRequest
110 голосов
/ 19 мая 2010
Notice: Constant DIR_FS_CATALOG already defined

Я уже прокомментировал display_errors в php.ini, но не работает.

Как мне заставить PHP не выводить такие вещи в браузеры?

UPDATE

Я положил display_errors = Off там, но он все еще сообщает о таких уведомлениях,

Это проблема с PHP 5.3?

Сообщение о множестве Стек вызовов тоже ..

Ответы [ 15 ]

220 голосов
/ 19 мая 2010

Из документации PHP ( error_reporting ):

<?php
// Turn off all error reporting
error_reporting(0);
?>

Другие интересные опции для этой функции:

<?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);

?>
72 голосов
/ 19 мая 2010

Вы можете установить display_errors на 0 или использовать функцию error_reporting().

Тем не менее, уведомления раздражают (я могу частично сочувствовать ), но они служат цели. Вы не должны определять константу дважды, второй раз не сработает и константа останется неизменной!

31 голосов
/ 05 ноября 2011

Для командной строки php установите

error_reporting = E_ALL & ~E_NOTICE

в /etc/php5/cli/php.ini

команда php выполнение затем пропускает уведомления.

20 голосов
/ 09 ноября 2014
<?php

// Turn off all error reporting
error_reporting(0);

// 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
error_reporting(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);

?>

источник http://php.net/manual/en/function.error-reporting.php

11 голосов
/ 13 ноября 2017

использовал эту строку в вашем коде

error_reporting(E_ALL ^ E_NOTICE);  

Я думаю, что он полон тебе.

4 голосов
/ 07 октября 2014

Вы ищете:

php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"
4 голосов
/ 19 мая 2010

Вы можете установить ini_set('display_errors',0); в своем скрипте или определить, какие ошибки вы хотите отображать с помощью error_reporting().

3 голосов
/ 19 мая 2010

, не вызывая ошибок:

defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');

Если вам действительно нужно, измените сообщение об ошибке с помощью error_reporting () на E_ALL ^ ​​E_NOTICE.

2 голосов
/ 09 ноября 2017

Для кода PHP:

<?php
error_reporting(E_ALL & ~E_NOTICE);

Для php.ini Конфигурация:

error_reporting = E_ALL & ~E_NOTICE
0 голосов
/ 05 декабря 2018

Я предпочитаю не устанавливать error_reporting внутри моего кода. Но в одном случае, унаследованном продукте, существует так много уведомлений, что они должны быть скрыты.

Таким образом, я использовал следующий фрагмент, чтобы установить сконфигурированное на стороне сервера значение для error_reporting и вычесть E_NOTICE s.

error_reporting(error_reporting() & ~E_NOTICE);

Теперь параметр сообщения об ошибках можно дополнительно настроить в php.ini или .htaccess. Только уведомления всегда будут отключены.

...