Удаление предупреждающих сообщений в PHP


У меня есть немного PHP-кода. Когда я запускаю его, появляется предупреждающее сообщение.

Как я могу удалить/подавить/игнорировать эти предупреждающие сообщения?

Author: Banee Ishaque K, 2010-01-01

10 answers

Вам действительно следует исправить то, что вызывает предупреждение, но вы можете контролировать видимость ошибок с помощью error_reporting. Чтобы пропустить предупреждающие сообщения, вы можете использовать что-то вроде:

error_reporting(E_ERROR | E_PARSE);
 263
Author: Tatu Ulmanen, 2012-05-26 18:32:21

Вы можете положить @ перед вызовом функции, чтобы подавить все сообщения об ошибках.

@yourFunctionHere();
 90
Author: PetPaulsen, 2014-08-25 19:58:38

Чтобы подавить предупреждения, оставив все остальные сообщения об ошибках включенными:

error_reporting(E_ALL ^ E_WARNING); 
 32
Author: Karthik, 2014-08-25 19:53:18

Если вы не хотите показывать предупреждения, а также ошибки, используйте

// Turn off all error reporting
error_reporting(0);

Отчеты об ошибках - Руководство по PHP

 19
Author: mohan.gade, 2017-05-23 16:37:11

Не совсем отвечаю на вопрос, но я думаю, что в некоторых ситуациях это лучший компромисс:

У меня появилось предупреждающее сообщение в результате оператора printf() в сторонней библиотеке. Я точно знал, в чем причина - временное решение, пока сторонняя компания исправляла свой код. Я согласен с тем, что предупреждения не следует подавлять, но я не мог продемонстрировать свою работу клиенту с предупреждающим сообщением, появляющимся на экране. Мое решение:

printf('<div style="display:none">');
    ...Third-party stuff here...
printf('</div>');

Предупреждение все еще было в источнике страницы в качестве напоминания мне, но невидимого для клиента.

 10
Author: DaveWalley, 2017-11-17 18:46:34

Вы можете отключить предупреждение, используя сообщение об ошибке но гораздо лучший способ - это в первую очередь исправить свой сценарий.

Если вы не знаете, как это сделать, отредактируйте свой вопрос и покажите нам соответствующую строку и отображаемое предупреждение.

 7
Author: Pekka 웃, 2015-07-25 03:13:05

В основном 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);
 7
Author: Vijay Lathiya, 2017-05-12 05:04:20

Я думаю, что лучшим решением является настройка .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
 5
Author: Sebastian Piskorski, 2014-05-10 16:34:06

Если вы хотите отключить предупреждения и некоторые другие типы ошибок (например, уведомления) при отображении всех других ошибок, вы можете сделать:

error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
 3
Author: zstate, 2018-01-10 17:13:50

Я делаю это следующим образом в моем php.ini:

error_reporting = E_ALL & ~E_WARNING  & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

При этом регистрируются только фатальные ошибки и никаких предупреждений.

 1
Author: navid, 2018-04-18 02:58:52