Eliminar mensajes de advertencia en PHP


Tengo algo de código PHP. Cuando lo corro, aparece un mensaje de advertencia.

¿Cómo puedo eliminar/suprimir/ignorar estos mensajes de advertencia?

Author: Banee Ishaque K, 2010-01-01

10 answers

Realmente debería corregir lo que está causando la advertencia, pero puede controlar la visibilidad de los errores con error_reporting. Para omitir mensajes de advertencia, puede usar algo como:

error_reporting(E_ERROR | E_PARSE);
 263
Author: Tatu Ulmanen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-26 18:32:21

Usted puede poner un @ delante de su llamada de función para suprimir todos los mensajes de error.

@yourFunctionHere();
 90
Author: PetPaulsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-25 19:58:38

Para suprimir las advertencias dejando habilitados todos los demás informes de errores:

error_reporting(E_ALL ^ E_WARNING); 
 32
Author: Karthik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-25 19:53:18

Si no desea mostrar advertencias y errores, use

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

Reporte de errores-Manual de PHP

 19
Author: mohan.gade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 16:37:11

No responde exactamente a la pregunta, pero creo que este es un mejor compromiso en algunas situaciones:

Recibí un mensaje de advertencia como resultado de una instrucción printf() en una biblioteca de terceros. Sabía exactamente cuál era la causa, un trabajo temporal mientras el tercero arreglaba su código. Estoy de acuerdo en que las advertencias no deben suprimirse, pero no pude demostrar mi trabajo a un cliente con el mensaje de advertencia apareciendo en la pantalla. Mi solución:

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

La advertencia todavía estaba en fuente de página como un recordatorio para mí, pero invisible para el cliente.

 10
Author: DaveWalley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-17 18:46:34

Puede suprimir la advertencia utilizando error_reporting pero la mejor manera es arreglar tu script en primer lugar.

Si no sabes cómo, edita tu pregunta y muéstranos la línea en cuestión y la advertencia que se muestra.

 7
Author: Pekka 웃,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-25 03:13:05

En el núcleo de Php para ocultar el mensaje de advertencia establecer error_reporting(0) en la parte superior del archivo de inclusión común o archivo individual.

En Wordpress ocultar Advertencias y Avisos añadir el siguiente código en wp-config.archivo 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,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-12 05:04:20

Creo que la mejor solución es la configuración de .htaccess De esa manera no tienes que alterar el código de aplicación. Aquí hay directivas para 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,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-10 16:34:06

Si desea suprimir las advertencias y algunos otros tipos de error (por ejemplo, avisos) mientras muestra todos los demás errores, puede hacer:

error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
 3
Author: zstate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-10 17:13:50

Lo hago de la siguiente manera en mi php.ini :

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

Esto registra solo errores fatales y no hay advertencias.

 1
Author: navid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-18 02:58:52