Errores de manejo de PHP

Usando este código con script simplehtmldom ( http://simplehtmldom.sourceforge.net/manual.htm ):

function file_get_html() { $dom = new simple_html_dom; $args = func_get_args(); $dom->load(call_user_func_array('file_get_contents', $args), true); return $dom; } $url = 'http://site.com/'; $html = file_get_html($url); 

¿Cómo manejar los errores en la parte file_get_html($url) ? Ahora, si la página no existe, muestra errores en la ventana del navegador. Prefiero verlos y mostrar mi texto en su lugar, como:

 if(some error happened on file_get_html($url)) { $errors = true; } else { html = file_get_html($url); } 

Gracias.

Intenta poner try-catch así en tu función:

 try{ $dom->load(call_user_func_array('file_get_contents', $args), true); return $dom; } catch(Exception $e){ //echo $e->getMessage(); throw new Exception('could not load the url'); } 

Actualizar:

O puede usar esta función para ver si realmente existe el enlace remoto:

 function url_exists($url){ if ((strpos($url, "http")) === false) $url = "http://" . $url; if (is_array(@get_headers($url))) return true; else return false; } 

Aquí es cómo puede usar la función anterior:

 function file_get_html() { $args = func_get_args(); if (url_exists($args)) { $dom = new simple_html_dom; $dom->load(call_user_func_array('file_get_contents', $args), true); return $dom; } else { echo "The url isn't valid"; return false; } } 

Hola. Necesitas comprobar el mensaje 404 No Encontrado, ya que se devuelve una matriz en cualquier caso.

 function url_exists($url){ if ((strpos($url, "http")) === false) $url = "http://" . $url; $headers = @get_headers($url); //print_r($headers); if (is_array($headers)){ //Check for http error here....should add checks for other errors too... if(strpos($headers[0], '404 Not Found')) return false; else return true; } else return false; }