Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie wielu plików
Forum PHP.pl > Forum > Przedszkole
lsrtb
  1. $arrFile = file('links.txt');
  2.  
  3. foreach($arrFile as $key => $val){
  4.  
  5. $patt = '@http://przykladowa-strona.pl/content/images/show_(.*).jpg@Uis';
  6. preg_match($patt, $val, $id);
  7. $content = file_get_contents($val);
  8. $fp = fopen('images/'.$id[1].'.jpg', "w");
  9. fwrite($fp, $content);
  10. fclose($fp);
  11.  
  12. }


W pliku links.txt znajdują się linki - każdy w osobnej linii, jeden pod drugim.

Dlaczego to nie działa? Tzn. pobiera obrazek tylko z ostatniego linka. Próbowałem to samo za pomocą cURL i ten sam efekt - tylko ostatni plik się pobiera. Dodam, że wszystkie linki działają w przeglądarce.
lsrtb
Linki w pliku:
Kod
http://przykladowa-strona.pl/content/images/show_1234.jpg
http://przykladowa-strona.pl/content/images/show_5242.jpg
http://przykladowa-strona.pl/content/images/show_9711.jpg
http://przykladowa-strona.pl/content/images/show_6979.jpg
...


Wyrażenie regularne:
  1. $patt = '@http://przykladowa-strona.pl/content/images/show_(.*).jpg@Uis';


Pobierz elementy według wyrażenia regularnego $patt ze stringa $val i zapisz w tablicy $id:
  1. preg_match($patt, $val, $id);


Przykładowo:
Kod
$val = http://przykladowa-strona.pl/content/images/show_6979.jpg
$id[1] = 6979


Usuwam po prostu z nazwy pliku część show_
nospor
Tak czy siak, twoim problemem jest to, ze ciagle wpetli zerujesz plik...
fopen ma byc przed foreach
fclose ma byc za foreach
Pyton_000
A co mi tam wink.gif

Jeśli w linkach nie ma innych liczb poza nazwą obrazka to:

  1. <?php
  2.  
  3. $links = file('links.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
  4.  
  5. foreach ($links as $link) {
  6. $content = file_get_contents($link);
  7. $fileName = filter_var($link, FILTER_SANITIZE_NUMBER_INT);
  8. file_put_contents("images/{$fileName}.jpg", $content);
  9. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.