У меня есть немного кода PHP. Когда я запускаю его, появляется предупреждение.
Как я могу удалить / подавить / игнорировать эти предупреждающие сообщения?
php
warnings
error-reporting
Алиреза
источник
источник
Ответы:
Вы действительно должны исправить все, что вызывает предупреждение, но вы можете контролировать видимость ошибок с помощью
error_reporting()
. Чтобы пропустить предупреждающие сообщения, вы можете использовать что-то вроде:источник
E_ALL ^ E_WARNING
Включение всех отчетов об ошибках, кроме предупреждений, кажется лучшим выбором аргумента дляerror_reporting
.Вы можете поставить @ перед вызовом функции, чтобы подавить все сообщения об ошибках.
источник
dns_get_record
будут выдавать предупреждения. Ваш код может компенсировать предупреждение, но он все равно выбрасывает их. Отключение отчетов об ошибках работает на рабочем сервере, но не на сервере devel. Если вы генерируете XML-контент, предупреждение приведет к тому, что браузер не будет отображаться, поскольку сервер отправляет некорректный XML-код, вызванный предупреждением. Иногда вам нужно это на devel, но не для чего-то, вызванного временной ошибкой поиска DNS, которую вы уже компенсируете.Чтобы подавить предупреждения, оставив все остальные отчеты об ошибках включенными:
источник
Если вы не хотите показывать предупреждения, а также ошибки, используйте
Отчет об ошибках - PHP Manual
источник
Если вы хотите подавить предупреждения и некоторые другие типы ошибок (например, уведомления) при отображении всех других ошибок, вы можете сделать:
источник
в Core Php, чтобы скрыть предупреждающее сообщение, установите error_reporting (0) в верхней части общего включаемого файла или отдельного файла.
В Wordpress скрыть Предупреждения и Уведомления добавить следующий код в файле wp-config.php
источник
Не совсем отвечаю на вопрос, но я думаю, что это лучший компромисс в некоторых ситуациях:
У меня появилось предупреждающее сообщение в результате оператора printf () в сторонней библиотеке. Я точно знал, в чем причина - временное решение проблемы, пока сторонние исправили свой код. Я согласен с тем, что предупреждения не должны подавляться, но я не смог продемонстрировать свою работу клиенту с предупреждением, появляющимся на экране. Мое решение:
Предупреждение все еще было в источнике страницы как напоминание для меня, но невидимым для клиента.
источник
ob_start()
иob_end_clean()
вместо этого. Таким образом, материал даже не отправляется в браузер (что он делает здесь).Я делаю это следующим образом в моем php.ini :
Это регистрирует только фатальные ошибки и никаких предупреждений.
источник
Я думаю, что лучшим решением является конфигурация .htaccess. Таким образом, вам не нужно изменять код приложения. Вот директивы для Apache2
источник
Вы можете подавить предупреждение, используя error_reporting, но гораздо лучший способ - это сначала исправить ваш скрипт.
Если вы не знаете, как, отредактируйте свой вопрос и покажите нам соответствующую строку и отображаемое предупреждение.
источник
Уже есть ответ с оператором контроля ошибок, но в нем нет объяснения. Вы можете использовать
@
оператор с каждым выражением, и оно скрывает ошибки (за исключением фатальных ошибок).Для отладки это быстрый и идеальный метод. Но вы никогда не должны использовать его на производстве или постоянно включать в свою локальную версию. Это даст вам много ненужного раздражения.
Вы должны рассмотреть вместо этого:
1. Настройки сообщений об ошибках, указанные в принятом ответе.
или из настроек PHP INI
2. Ловля исключений
источник
Для игнорирования всех предупреждений используйте этот пример в верхней части кода:
источник