Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/01/2011, 03:22
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 2 meses
Puntos: 20
Capturar excepcion no funciona

Buenas,

Estoy intentando captura esta excepción de si no encuentra la pagina web, pero no lo consigo, no sé que estoy haciendo mal.

Código PHP:
Ver original
  1. function ParserWebSimple($url,$expresion,$debug=false,$notifica=false){
  2.     try {
  3.         $web = file_get_contents($url);
  4.     }catch (Exception $e) {
  5.         echo 'ERROR: ',  $e->getMessage(), "\n";
  6.     }
  7.     preg_match_all($expresion,$web, $matches);
  8.     $resultado=trim(strip_tags($matches[1][0]));
  9.    
  10.     return $resultado;
  11. }
  12.  
  13. // MAIN
  14. $url='http://www.alternate.es/html/product/Placas_base_Socket_1366/Asus/SABERTOOTH_X58/475921/?tn=HARDWARE&l1=Placas+base&l2=Intel&l3=Socket+1366';
  15. $expresion='|<div id="price" style="position:relative;">(.*?)</div>|is';
  16. echo ParserWebSimple($url,$expresion,$debug=false,$notifica=false);

Si lo ejecuto con una URL correcta funciona, muestra el resultado
177,90 €

En cambio si pongo una URL no correcta

Código PHP:
Ver original
  1. $url='http://www.alternate33.es/html/product/Placas_base_Socket_1366/Asus/SABERTOOTH_X58/475921/?tn=HARDWARE&l1=Placas+base&l2=Intel&l3=Socket+1366';

Me muestra el siguiente error por pantalla

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Host desconocido. in C:\AppServ\www\Parseando_Webs\componentes_PC\compo nentes_PC.php on line 13

Warning: file_get_contents(http://www.alternate33.es/html/produ...l3=Socket+1366) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Host desconocido. in C:\AppServ\www\Parseando_Webs\componentes_PC\compo nentes_PC.php on line 13


La linea 13 es precisamente
$web = file_get_contents($url);

El script no está capturando el error, sabéis qué hago mal?

Muchas gracias de antemano!