Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/07/2012, 10:41
Avatar de vicram10
vicram10
 
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 3 meses
Puntos: 27
Respuesta: foreach y problema con curl

Código PHP:
Ver original
  1. // asi me funciona para una url de descarga pero yo quiero descargar todas una por una automaticamente y
  2. //tengo todas las url en un array llamdo descargas
  3. $arrayURL = array('http://url_1', 'http://url_2', 'http://url_3');
  4.  
  5. $folder = "ruta";
  6. if (!$folder || !isset($folder))
  7. {
  8.     die ("Please specify local folder name");
  9. }
  10.  
  11. //aca hacemos el giro
  12. foreach($arrayURL as $value)
  13. {
  14.     $urls = split("\n", $value);
  15.     $urls = str_replace("\r", "", $urls);
  16.     $mh = curl_multi_init();
  17.     foreach ($urls as $i => $url) {
  18.         $path = pathinfo($url);
  19.         $g=$folder . "/" . $path["basename"] ;
  20.         echo "Descargado el archivo";
  21.         if(!is_file($g)){
  22.             $conn[$i]=curl_init($url);
  23.             $fp[$i]=fopen ($g, "w");
  24.             curl_setopt ($conn[$i], CURLOPT_FILE, $fp[$i]);
  25.             curl_setopt ($conn[$i], CURLOPT_HEADER ,0);
  26.             curl_multi_add_handle ($mh,$conn[$i]);
  27.         }
  28.     }
  29.     do {
  30.         $n=curl_multi_exec($mh,$active);
  31.     }
  32.     while ($active);
  33.     foreach ($urls as $i => $url) {
  34.         curl_multi_remove_handle($mh,$conn[$i]);
  35.         curl_close($conn[$i]);
  36.         fclose ($fp[$i]);
  37.     }
  38.     curl_multi_close($mh);  
  39. }

Puedes probar de esa forma