Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobieranie wielu plików
lsrtb
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
lsrtb
post
Post #2





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


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_
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tak czy siak, twoim problemem jest to, ze ciagle wpetli zerujesz plik...
fopen ma byc przed foreach
fclose ma byc za foreach


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 09:22