10 ответов:
вы действительно должны исправить то, что вызывает предупреждение, но вы можете контролировать видимость ошибок с error_reporting. Чтобы пропустить предупреждающие сообщения, Вы можете использовать что-то вроде:
error_reporting(E_ERROR | E_PARSE);
вы можете поставить @ перед вызовом функции, чтобы подавить все сообщения об ошибках.
@yourFunctionHere();
чтобы подавить предупреждения, оставив все остальные сообщения об ошибках включенными:
error_reporting(E_ALL ^ E_WARNING);
Если вы не хотите показывать предупреждения, а также ошибок, использовать
// Turn off all error reporting error_reporting(0);
Не совсем ответ на вопрос, но я думаю, что это лучший компромисс в некоторых ситуациях:
У меня было предупреждающее сообщение в результате оператора printf() в сторонней библиотеке. Я точно знал, в чем причина - временная работа, пока третья сторона исправляла свой код. Я согласен, что предупреждения не должны подавляться, но я не мог продемонстрировать свою работу клиенту с предупреждающим сообщением, появляющимся на экране. Мой решение:
printf('<div style="display:none">'); ...Third-party stuff here... printf('</div>');предупреждение все еще было в источнике страницы в качестве напоминания мне, но невидимо для клиента.
вы можете подавить предупреждение с помощью error_reporting но гораздо лучший способ, чтобы исправить ваш скрипт в первую очередь.
Если вы не знаете, как, отредактируйте свой вопрос и показать нам строку в вопросе и предупреждение, которое отображается.
в Core Php для скрытия предупреждающего сообщения установите error_reporting (0) поверх общего файла include или отдельного файла.
В Wordpress скрыть предупреждения и уведомления добавить следующий код в wp-config.файл php
ini_set('log_errors','On'); ini_set('display_errors','Off'); ini_set('error_reporting', E_ALL ); define('WP_DEBUG', false); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false);
Я думаю, что лучшим решением является конфигурация .htaccess таким образом, вам не придется изменять код приложения. Вот директивы для Apache2
php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_value docref_root 0 php_value docref_ext 0
Если вы хотите подавить предупреждения и некоторые другие типы ошибок (например, уведомления) при отображении всех других ошибок, вы можете сделать:
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
Я делаю это следующим образом в моем php.ini:
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATEDэто регистрирует только фатальные ошибки и никаких предупреждений.
Comments