Ver Mensaje Individual
  #7 (permalink)  
Antiguo 28/09/2011, 18:10
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: file_get_contents falla

Debe haber algún error en la URL porque la página me marca este error:

System.InvalidOperationException: Missing parameter

que falta un parámetro o parámetros. Revisala

Edit: más exactamente te falta el parámetro rt

arreglando el parámetro rt y city_id me di cuenta que lo que pasa lo que decias en un inicio, ese servidor está muy saturado. Demora siglos para devolver el archivo XML. Puedes establecer un tiempo límite y mostrar un error en caso de que se esté demorando mucho... En el ejemplo tiene un límite de 10 segundos. Si pasan los 10 segundos u ocurre algún error mostrará el mensaje "Lo sentimos el servidor esta ocupado en este momento":

Código PHP:
Ver original
  1. <?php
  2. array('http' => array('timeout' => 10))); //timeout
  3.  
  4. $xml_get = @file_get_contents("http://xml.e-travelsolution.com/xml/enginexml-agencies.asmx/getQuoteHotels?a=k4r3n-4n3l&pwd=5ecr370&c=PE&sd=20111111&ed=20111116&h=&rt=&mp=&r=1&r1a=2&r1k=0&r1k1a=-1&r1k2a=-1&r1k3a=-1&r2a=-1&r2k=-1&r2k1a=-1&r2k2a=-1&r2k3a=-1&r3a=-1&r3k=-1&r3k1a=-1&r3k2a=-1&r3k3a=-1&r4a=-1&r4k=-1&r4k1a=-1&r4k2a=-1&r4k3a=-1&r5a=-1&r5k=-1&r5k1a=-1&r5k2a=-1&r5k3a=-1&d=2&l=ESP&categoryid=&locationid=&chainid=&cityid=&fq=&co=MX",
  5. 0, $context);
  6.  
  7. if ($xml_get) {
  8.    
  9.     $xml = new SimpleXMLElement($xml_get);
  10.    
  11.     foreach ($xml->hotels->hotel as $item) {
  12.         $hoteles[] = array("idhotel" => (int) $item->hotelid,
  13.         "hotelname" => (string) ($item->hotelname), "ciudad" => (string) $item->cityname,
  14.         "ubicacionid" => (string) $item->ubicationid, "categoria" => (string) $item->categoryid,
  15.         "tarifaneta" => (int) $item->rooms->Roomrates->rate);
  16.     }
  17.    
  18.     echo '<pre>';
  19.     print_r($hoteles);
  20.     echo '</pre>';
  21.  
  22. } else {
  23.     echo "Lo sentimos el servidor esta ocupado en este momento";
  24. }

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 28/09/2011 a las 18:37