PHP - descargar imagenes a traves de url

 
Vista:
sin imagen de perfil
Val: 49
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

descargar imagenes a traves de url

Publicado por fernando (17 intervenciones) el 28/01/2019 23:33:51
Necesito un archivo php o script que descargue las imágenes de una lista de urls y las guarde en el servidor renombradas con un id en autoincrement.


la lista de las urls estaria por ejemplo del siguiente modo:

http://www.lamerceddelalto.com/public/images/fotos/18-piscina-del-hotel-la-merced-del-alto.jpg
http://www.lamerceddelalto.com/public/images/fotos/18-piscina-del-hotel-la-merced-del-alto.jpg
http://www.lamerceddelalto.com/public/images/fotos/18-piscina-del-hotel-la-merced-del-alto.jpg


He estado buscando pero no encuentro la manera, haber si alguien me ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 49
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

descargar imagenes a traves de url

Publicado por fernando (17 intervenciones) el 05/04/2019 13:38:51
Este script descarga las imágenes con el mismo nombre, ¿pero como debería ser para que remplazara el nombre por un numero consecutivo?
Por ejemplo la primera imagen de la lista la guarde como 1.jpg, la segunda como 2.jpg etc...

Seria de gran ayuda Xavi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo_pm
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

descargar imagenes a traves de url

Publicado por italo_pm (193 intervenciones) el 05/04/2019 14:51:58
Hola, con el codigo de Xavi podrias acomodarlo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
 
  $carpeta="img/";
 
  $imagenes = array(
      "http://imagenpng.com/wp-content/uploads/2017/01/atardecer-568470fbef6.jpg",
      "http://imagenpng.com/wp-content/uploads/2017/01/Chichen-Itza-piramide.jpg",
      "http://imagenpng.com/wp-content/uploads/2017/01/d87e03a4261b6e0746deb.jpg"
  );
 
  for($i=0;$i<count($imagenes);$i++) {
 
    $nombre_file_url = substr($imagenes[$i],strrpos($imagenes[$i],"/")+1);
 
    $nombre_file_local = $i."_".$nombre_file_url;
 
    echo "<br> debbug: nombre file local: ".$nombre_file_local."<br>";
 
    $destino = $carpeta.$nombre_file_local;
 
    echo "<br> debbug: destino completo: ".$destino."<br>";
 
    file_put_contents($destino, file_get_contents($imagenes[$i]));
 
  }

el resultado:

1
2
3
4
5
6
7
8
9
10
11
debbug: nombre file local: 0_atardecer-568470fbef6.jpg
 
debbug: destino completo: img/0_atardecer-568470fbef6.jpg
 
debbug: nombre file local: 1_Chichen-Itza-piramide.jpg
 
debbug: destino completo: img/1_Chichen-Itza-piramide.jpg
 
debbug: nombre file local: 2_d87e03a4261b6e0746deb.jpg
 
debbug: destino completo: img/2_d87e03a4261b6e0746deb.jpg

si deseas, solo los numeros consecutivos, deberias primero separar la extencion del file y luego agregarlo a "$i".

Recuerda que escribir solo nombres fijos (concecutivos por el mismo for que siempre empieza de 0) no tiene sentido, ya que seguramente cuando desargues los proximos ya encontrara files existente con los mismos nombres (numeros en tu caso), puedes dejar el progresivo y agrega fecha y hora y/o nombre del file de esa manera no se repetiran.

prueba.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar