Как отключить уведомления PHP?
Notice: Constant DIR_FS_CATALOG already defined
Я уже закомментировать display_errors
на php.ini
, но не работает.
как сделать PHP, чтобы не выводить такие вещи в браузеры?
обновление
Я поставил display_errors = Off
там, но он все еще сообщает о таких уведомлениях,
это проблема с PHP 5.3?
сообщает о множестве Стек Вызовов тоже..
14 ответов
вы можете установить display_errors
до 0
или использовать error_reporting()
из документации PHP (предназначенных):
<?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
выполнение затем ommits уведомления.
<?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
Использовал Эту Строку В Коде
error_reporting(E_ALL ^ E_NOTICE);
Я думаю, что его helf полон для вас.
Вы можете установить ini_set('display_errors',0);
в вашем скрипте или определите, какие ошибки вы хотите отобразить с помощью error_reporting()
.
не вызывая ошибки:
defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');
Если вам действительно нужно, измените отчеты об ошибках с помощью error_reporting () на E_ALL^E_NOTICE.
для PHP кода:
<?php
error_reporting(E_ALL & ~E_NOTICE);
на php.ini
config:
error_reporting = E_ALL & ~E_NOTICE
вы можете проверить, определена ли константа с помощью:
<?php
if (!defined('MYCONST'))
define('MYCONST', 'Weeha!');
?>
Я считаю, комментируя display_errors в php.ini не будет работать, потому что значение по умолчанию включено. Вы должны установить его в 'off' вместо этого.
Не забудьте перезапустить Apache, чтобы применить изменения конфигурации.
также обратите внимание, что, хотя вы можете установить display_errors во время выполнения, изменение его здесь не влияет на фатальные ошибки.
Как отметили другие, в идеале во время разработки вы должны работать с error_reporting на самом высоком уровне и display_errors включен. Хотя раздражает, когда вы впервые начинаете, эти ошибки, предупреждения, уведомления и строгие советы по кодированию все складываются и позволяют вам стать лучшим кодером.
недавно я обнаружил этот трюк. Огреть @ в начале строки, Что может вызвать ошибки.
словно по волшебству, они исчезают.
используйте phpinfo () и найдите Configuration File (php.ini) Path
чтобы узнать, какой путь к файлу конфигурации для php используется. PHP может иметь несколько файлов конфигурации в зависимости от среды, в которой он работает. Обычно, для консоли это:
/ etc/php5/cli / php.ini
и для php, запущенного apache, это:
/и т. д./В php5/apache2 не/РНР.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-file
как говорили некоторые, и если вы являетесь автором кода, Вы должны исправить все те ошибки, уведомления и т. д. потому что это вызовет больше проблем для вас в долгосрочной перспективе, чем не исправить их (особенно при обновлении ОС). Для вашего сервера ошибки должны отображаться только в ваших журналах, а не на экране клиента.
поэтому, чтобы избежать ошибок в вашем браузере, вы используете display_errors
флаг, как вы уже нашли:
display_errors = Off
теперь реальная проблема в том, когда вы запуск чужого кода. В этом случае изменение кода может перезаписываться каждый раз при обновлении этого кода. Поддерживать этот код утомительно.
в моем случае я запускаю PHP с crontab
иметь wp-cron.php
скрипт работает время от времени. Я получаю ошибки отправил на мои письма, что становится утомительным, когда вы получаете одно письмо каждые 10 минут! В этом случае, однако, система Wordpress имеет файл конфигурации включает в себя WP_DEBUG
и они называют error_reporting()
функция так пытается изменить error_reporting
переменной в командной строке не работают. Вместо этого вам нужно отредактировать wp-config.php
файл в корневой папке и убедитесь, что WP_DEBUG
установлено значение false
. В противном случае вы получите все эти предупреждения и уведомления все время.