Tengo un código PHP. Cuando lo ejecuto, aparece un mensaje de advertencia.Eliminar mensajes de advertencia en PHP
¿Cómo puedo eliminar/suprimir/ignorar estos mensajes de advertencia?
Tengo un código PHP. Cuando lo ejecuto, aparece un mensaje de advertencia.Eliminar mensajes de advertencia en PHP
¿Cómo puedo eliminar/suprimir/ignorar estos mensajes de advertencia?
Realmente debería corregir lo que está causando la advertencia, pero puede controlar la visibilidad de los errores con error_reporting. Para omitir los mensajes de advertencia, podría utilizar algo como:
error_reporting(E_ERROR | E_PARSE);
Puede suprimir la advertencia utilizando error_reporting pero la mejor manera es corregir su script en primer lugar.
Si no sabe cómo, edite su pregunta y muéstrenos la línea en cuestión y la advertencia que se muestra.
Puede poner @ en frente de su llamada a la función de suprimir todos los mensajes de error.
@yourFunctionHere();
Esto oculta el error, todavía está sucediendo. Los errores hacen que PHP se desacelere, por lo que es mejor corregir el error si es posible. Usar @ incluso ralentiza el código cuando no hay un error. http://vega.rd.no/articles/php-performance-error-suppression – dprevite
veces (por desgracia) que realmente no tienen una opción. Por ejemplo, la función PHP parse_url() genera Advertencias para URL "severamente mal formadas", lo cual es posiblemente un error ya que la función devuelve falso en este caso. Por lo que debe o bien tolerar estas advertencias PHP en su salida del programa (puede ser inaceptable para aplicaciones de analizador/validador), suprimir las advertencias de alguna manera, o evitar el comportamiento de PHP roto escribiendo su propio analizador/validador para las direcciones URL. En este caso, elijo el @. – Peter
IMPORTANTE: Utilice este método si y sólo si (1) no se puede solucionar el problema que genera la advertencia ni (2) ocultar sus advertencias de los usuarios finales a través de php error_reporting ... Cómo ocultar las advertencias de sus desarrolladores no es una solución. –
Para suprimir las advertencias, dejando el resto de la presentación de informes de errores habilitado:
error_reporting(E_ALL^E_WARNING);
No responder exactamente la pregunta, pero creo que esto es un mejor compromiso en algunas situaciones:
que tenía una 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 ser suprimidas, 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 la fuente de la página como un recordatorio para mí, pero invisible para el cliente.
Personalmente, me gustaría usar [ 'ob_start()'] (http://php.net/manual/en/function.ob-start.php) y [ 'ob_end_clean()'] (http: // php. net/manual/es/function.ob-end-clean.php) en su lugar. De esta forma, las cosas ni siquiera se envían al navegador (lo que hace aquí). – h2ooooooo
Es por eso que incluí "algunas situaciones", "las advertencias no deben ser suprimidas" y "recordatorio para mí". – DaveWalley
Antes de votar más abajo, por favor lea mi respuesta. Tenga en cuenta "de terceros", "compromiso" y el comentario anterior. Agregué esta respuesta en caso de que alguien más esté en la misma situación en la que me encontraba, y en esa situación específica, esto me salvó, mientras que todas las otras respuestas no habrían sido tan buenas. La próxima vez lo pensaré dos veces antes de ser útil. – DaveWalley
Si no desea mostrar advertencias, así como los errores utilizan
// Turn off all error reporting
error_reporting(0);
Creo que una mejor solución es la configuración de .htaccess De esa manera usted no tiene que alterar el código de solicitud. Aquí están las directivas de Apache 2
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
en núcleo de PHP para ocultar mensaje de advertencia de establecer error_reporting (0) en la parte superior del archivo de inclusión común o un archivo individual.
En Wordpress hide Warnings and Notices complemento siguiente código en el archivo 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);
Si desea suprimir las advertencias y algunos otros tipos de error (por ejemplo, anuncios) al tiempo que muestra todos los demás errores, puede do:
error_reporting(E_ALL & ~E_WARNING & ~E_NOTICE);
'E_ALL^E_WARNING', habilitando todos los informes de error además de las advertencias, parece una mejor opción de argumento para' error_reporting'. –
en general, estoy de acuerdo, en mi caso generar el mensaje de advertencia fue un comportamiento intencionado porque era parte de mis pruebas unitarias. – pgee70