Pregunta Cómo evitar que fopen active la advertencia al intentar abrir un URI no válido / inalcanzable


Estoy usando fopen para generar un feed de precios.

if (($handle = fopen("http://feedurl", "r")) !== FALSE) {

}

¿Hay alguna manera de detener esta advertencia si el feed falla?

Advertencia: fopen () [function.fopen]: php_network_getaddresses: getaddrinfo falló: Nombre o servicio desconocido en ...


5
2017-07-12 02:21


origen


Respuestas:


Puedes usar @ para suprimir la advertencia:

if(($handle = @fopen("http://feedurl", "r")) !== FALSE){

}

Esto es adecuado aquí porque usted está manejando la condición de error adecuadamente. Tenga en cuenta que el uso liberal de la @ firmar, en general, para suprimir errores y advertencias es poco aconsejable.

Por el entrada manual para fopen:

Si falla la apertura, se genera un error de nivel E_WARNING. Puede usar @ para suprimir esta advertencia.


14
2017-07-12 02:24



Aquí hay otra posible solución.

$file_name = "http://feedurl";
if (file_exists($file_name) === false) {
    return;
}
$handle = fopen($file_name, "r");

1
2018-06-02 11:33



O puedes usar

error_reporting(E_ALL ^ E_WARNING);

-2
2017-07-12 02:35