У меня есть код PHP. Когда я запустил его, появится предупреждающее сообщение.
Как я могу удалить/отключить/игнорировать эти предупреждающие сообщения?
У меня есть код PHP. Когда я запустил его, появится предупреждающее сообщение.
Как я могу удалить/отключить/игнорировать эти предупреждающие сообщения?
Вы действительно должны исправить все, что вызывает предупреждение, но вы можете контролировать видимость ошибок с error_reporting. Чтобы пропустить предупреждающие сообщения, вы можете использовать что-то вроде:
error_reporting(E_ERROR | E_PARSE);
Вы можете поместить @ перед вызовом функции для подавления всех сообщений об ошибках.
@yourFunctionHere();
Чтобы подавить предупреждения, оставив при этом все другие сообщения об ошибках:
error_reporting(E_ALL ^ E_WARNING);
Если вы не хотите показывать предупреждения и ошибки, используйте
// Turn off all error reporting
error_reporting(0);
Если вы хотите подавить предупреждения и некоторые другие типы ошибок (например, уведомления) при отображении всех других ошибок, вы можете сделать:
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
в Core Php, чтобы скрыть предупреждающее сообщение, установите error_reporting (0) в верхней части общего включаемого файла или отдельного файла.
В 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);
Не совсем отвечающий на вопрос, но я думаю, что это лучший компромисс в некоторых ситуациях:
У меня появилось предупреждающее сообщение в результате выражения printf() в сторонней библиотеке. Я точно знал, в чем причина: временная работа, в то время как сторонняя сторона исправила свой код. Я согласен с тем, что предупреждения не следует подавлять, но я не мог продемонстрировать свою работу клиенту с появлением предупреждающего сообщения на экране. Мое решение:
printf('<div style="display:none">');
...Third-party stuff here...
printf('</div>');
Предупреждение по-прежнему находилось в источнике страницы как напоминание мне, но невидимое для клиента.
Вы можете подавить предупреждение, используя error_reporting, но гораздо лучший способ - исправить ваш script в на первом месте.
Если вы не знаете, как отредактировать свой вопрос и показать нам строку и предупреждение, которое отображается.
Я думаю, что лучшим решением является конфигурация .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
Я делаю это следующим образом в моем php.ini:
error_reporting = E_ALL & ~E_WARNING & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
Это регистрирует только фатальные ошибки и никаких предупреждений.
PHP 7.2 предоставляет примеры, которые можно попробовать. Вот фрагмент того, что дано в файле php.ini, начиная со строки 449.
; Common Values:
; E_ALL (Show all errors, warnings and notices including coding standards.)
; E_ALL & ~E_NOTICE (Show all errors, except for notices)
; E_ALL & ~E_NOTICE & ~E_STRICT (Show all errors, except for notices and coding standards warnings.)
; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors)
; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL
Так что попробуйте с любым из этих вариантов. После внесения изменений перезагрузите сервер и протестируйте сценарии.