Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/01/2013, 16:01
higochumbo
 
Fecha de Ingreso: junio-2010
Mensajes: 26
Antigüedad: 13 años, 11 meses
Puntos: 3
Pregunta Problema con bucle (creo)

Hola saludos a todos!

Estoy haciendo un script para descargar imágenes a partir de una url. El proceso básicamente es obtener el código html de una url, buscar el nombre de la imagen en ese código y después descargar la imagen.

Las url son con esta sintaxis - htt://www.url.com?id=1 - . Esa url tiene un parametro llamado id con valor 1 y ese id contiene una imagen. Si pones id=2 obtienes otra imagen y asi sucesivamente. Para cambiar automaticamente el valor de la id he creado una variable llamada $id para ke la url tome esta forma - htt://www.url.com?id=$id - y de ahi en adelante el proceso es el ke comenté al principio.

El problema ke tengo es ke mi script solo obtiene el código html del id=1. No entiendo por ké razón no pasa al id=2 y desués al id=3 y así, sucesivamente. Os paso primero el código y despues lo ke imprime en pantalla.

Código:

Código PHP:
Ver original
  1. $limite=1;
  2. $id=1;
  3. $contador=0;
  4. $abierto="";
  5. $codigo="";
  6. $tag="tag";   <-- Pon aki la tag ke necesites buscar como referencia.
  7.  
  8. while($limite<=15){
  9.  
  10.     $url="http://www.url.com?id=".$id;  <-- Url del sitio del ke kieras descargar imagenes.
  11.     $url_remota=@fopen($url, "r");
  12.  
  13.     if(!$url_remota==false){
  14.         $abierto="si";
  15.         } else {
  16.             $abierto="no";
  17.             }
  18.  
  19.     while($abierto=="si"){
  20.  
  21.         $trozo=fgets($url_remota, 1024);
  22.  
  23.         if(!$trozo==false){
  24.  
  25.             while($trozo=fgets($url_remota, 1024)){
  26.                 $codigo.=$trozo;
  27.                 }
  28.  
  29.                 $buscar_tag=strpos($codigo, $tag);
  30.                 $borrar1=substr($codigo, ($buscar_tag+8));
  31.                 $borrar2=explode("[", $borrar1);
  32.                 $nombre_img=$borrar2[0];
  33.                 echo($contador." - ".$nombre_img."<br />");
  34.                 fclose($url_remota);
  35.                 $abierto="no";
  36.                 $limite++;
  37.                 $contador++;
  38.                 $id++;
  39.             }
  40.         }
  41.     }

En la línea 34 he puesto un echo para comprobar los valores de las variables ke necesito modificar automáticamente para ke el script funcione y como podeis ver $contador se autoincremente y si pones $id en vez de $nombre_img también se incrementa pero $nombre_img nunca cambia por lo ke creo ke algún bucle da vueltas de más pero a simple vista no consigo ver el fallo.

Esto es lo ke imprime en pantalla:
Código PHP:
Ver original
  1. 0 - 2a672vu9.jpg
  2. 1 - 2a672vu9.jpg
  3. 2 - 2a672vu9.jpg
  4. 3 - 2a672vu9.jpg
  5. 4 - 2a672vu9.jpg
  6. 5 - 2a672vu9.jpg
  7. 6 - 2a672vu9.jpg
  8. 7 - 2a672vu9.jpg
  9. 8 - 2a672vu9.jpg
  10. 9 - 2a672vu9.jpg
  11. 10 - 2a672vu9.jpg
  12. 11 - 2a672vu9.jpg
  13. 12 - 2a672vu9.jpg
  14. 13 - 2a672vu9.jpg
  15. 14 - 2a672vu9.jpg

Y en vez de eso debería salir el $contador seguido de un guión y una imagen diferente en cada linea en vez de la misma imagen en todas las lineas. Nu se no consigo continuar. Todavia no descarga porke descargaría todo el rato la misma imagen.

Bueno saludos a todos :)