Как отключить PHP-уведомления?

Notice: Constant DIR_FS_CATALOG already defined 

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

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

ОБНОВИТЬ

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

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

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

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

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

Из документации 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); ?> 

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

 error_reporting = E_ALL & ~E_NOTICE 

в /etc/php5/cli/php.ini

команда php выполняет команду omits.

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

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

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

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

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

Ты ищешь:

 php -d error_reporting="E_ERROR | E_WARNING | E_PARSE" 

Для PHP-кода:

 <?php error_reporting(E_ALL & ~E_NOTICE); 

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

 error_reporting = E_ALL & ~E_NOTICE 

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

 error_reporting(E_ALL ^ E_NOTICE); 

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

Вы можете проверить, была ли константа уже определена с помощью:

 <?php if (!defined('MYCONST')) define('MYCONST', 'Weeha!'); ?> 

Я считаю, что комментирование display_errors в php.ini не будет работать, поскольку по умолчанию включено. Вы должны установить его вместо «Выключить».

Не забудьте перезапустить Apache, чтобы применить изменения конфигурации.

Также обратите внимание, что, хотя вы можете установить display_errors во время выполнения, изменение здесь здесь не влияет на ошибки FATAL.

Как отмечают другие, в идеале во время разработки вы должны работать с error_reporting на самом высоком уровне, а display_errors включен. Несмотря на то, что вы впервые начинаете раздражать, эти ошибки, предупреждения, уведомления и строгие рекомендации по кодированию складываются и позволяют вам стать лучшим кодером.

Недавно я нашел этот трюк. Удалите @ в начале строки, которая может вызвать предупреждение / ошибку.

Как будто по волшебству они исчезают.

Используйте phpinfo () и найдите Configuration File (php.ini) Path чтобы узнать, какой путь к файлу конфигурации для php используется. PHP может иметь несколько конфигурационных файлов в зависимости от среды, в которой он работает. Обычно для консоли это:

/etc/php5/cli/php.ini

и для php, выполняемого apache, это:

/etc/php5/apache2/php.ini

И затем установите error_reporting так, как вам нужно:

http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini- файл

Как упоминалось некоторыми, и если вы автор кода, вы должны исправить все эти ошибки, уведомления и т. Д., Потому что это вызовет больше проблем для вас, чем их исправление (особенно при обновлении ОС). Для вашего сервера вы должны иметь ошибки, отображаемые только в ваших журналах, а не на экране клиента.

Поэтому, чтобы избежать ошибок в вашем браузере, вы используете флаг display_errors как вы уже нашли:

 display_errors = Off 

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

В моем случае я запускаю PHP с помощью crontab чтобы время от времени wp-cron.php скрипт wp-cron.php . Я получал ошибки, отправленные на мои письма, которые становятся утомительными, когда вы получаете по электронной почте каждые 10 минут! В этом случае система WordPress имеет файл конфигурации, включающий WP_DEBUG и они вызывают функцию error_reporting() поэтому попытка изменить переменную error_reporting в командной строке не будет работать. Вместо этого вы должны отредактировать файл wp-config.php в корневой папке и убедиться, что для параметра WP_DEBUG установлено значение false . В противном случае вы будете получать все эти предупреждения и уведомления все время.