Tengo un código PHP. Cuando lo ejecuto, aparece un mensaje de advertencia.
¿Cómo puedo eliminar / suprimir / ignorar estos mensajes de advertencia?
php
warnings
error-reporting
Alireza
fuente
fuente
Respuestas:
Realmente deberías arreglar lo que sea que esté causando la advertencia, pero puedes controlar la visibilidad de los errores con
error_reporting()
. Para omitir los mensajes de advertencia, puede usar algo como:fuente
E_ALL ^ E_WARNING
, habilitar todos los informes de errores además de las advertencias, parece una mejor opción de argumento paraerror_reporting
.Puede poner una @ delante de su llamada de función para suprimir todos los mensajes de error.
fuente
dns_get_record
lanzarán advertencias. Su código puede compensar la advertencia, pero aún así los arroja. Desactivar el informe de errores funciona en el servidor de producción, pero no en el servidor de desarrollo. Si está generando contenido XML, la advertencia hará que el navegador no se procese porque el servidor está enviando XML con formato incorrecto causado por la advertencia. A veces, desea eso en desarrollo, pero no por algo causado por una falla temporal de búsqueda de DNS que ya compensa.Para suprimir las advertencias y dejar todos los demás informes de errores habilitados:
fuente
Si no desea mostrar advertencias y errores, use
Informe de errores - Manual PHP
fuente
Si desea suprimir las advertencias y algunos otros tipos de error (por ejemplo, avisos) mientras muestra todos los demás errores, puede hacer lo siguiente:
fuente
en Core Php para ocultar el conjunto de mensajes de advertencia error_reporting (0) en la parte superior del archivo de inclusión común o archivo individual.
En Wordpress, oculte las advertencias y avisos y agregue el siguiente código en el archivo wp-config.php
fuente
No responde exactamente la pregunta, pero creo que este es un mejor compromiso en algunas situaciones:
Recibí un mensaje de advertencia como resultado de una declaración printf () en una biblioteca de terceros. Sabía exactamente cuál era la causa: una solución temporal mientras el tercero reparaba 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 que aparece en la pantalla. Mi solución:
La advertencia todavía estaba en la fuente de la página como un recordatorio para mí, pero invisible para el cliente.
fuente
ob_start()
y en suob_end_clean()
lugar. De esta manera, las cosas ni siquiera se envían al navegador (lo que hace aquí).Lo hago de la siguiente manera en mi php.ini :
Esto registra solo errores fatales y sin advertencias.
fuente
Creo que la mejor solución es la configuración de .htaccess De esa manera, no tiene que alterar el código de la aplicación. Aquí hay directivas para Apache2
fuente
Puede suprimir la advertencia usando error_reporting, pero la mejor manera es arreglar 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.
fuente
Ya hay una respuesta con el operador de control de errores, pero carece de explicación. Puede usar el
@
operador con cada expresión y oculta los errores (excepto los Errores fatales).Para la depuración es un método rápido y perfecto. Pero nunca debe usarlo en producción ni incluirlo permanentemente en su versión local. Le dará mucha irritación innecesaria.
Deberías considerar en su lugar:
1. Configuración de informes de errores como se menciona en la respuesta aceptada.
o desde la configuración PHP INI
2. Excepciones de captura
fuente
Para ignorar todas las advertencias, use este ejemplo, en la parte superior de su código:
fuente