Как отключить уведомления 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 (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, set
error_reporting = E_ALL & ~E_NOTICEна
/etc/php5/cli/php.iniкоманда
phpвыполнение затем оммит уведомления.
<?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.iniconfig:error_reporting = E_ALL & ~E_NOTICE
вы можете проверить, если константа уже определена с использованием:
<?php if (!defined('MYCONST')) define('MYCONST', 'Weeha!'); ?>
Я считаю, комментируя display_errors в php.ini не будет работать, потому что по умолчанию включен. Вместо этого вы должны установить его в положение "Выкл".
Не забудьте перезапустить Apache, чтобы применить изменения конфигурации.
также обратите внимание, что, хотя вы можете установить display_errors во время выполнения, изменение его здесь не влияет на фатальные ошибки.
Как отмечают другие, в идеале во время разработки вы должны работать с 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-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. В противном случае вы получите все эти предупреждения и уведомления все время.
Comments