Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wyciagniecie z html adresu grafiki, przebieram stare forum dyskusyjne
esos
post 2.02.2007, 18:54:29
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 7.08.2005
Skąd: zabrze

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


witam
grzebiac na hdd znalazlem zrzucone na dysk forum dyskusyjne sprzed kilku ladnych lat kiedy to jeszcze bylem mlody, mialem wlosy i jezdzilem stopem po kraju. niestety zrzucajac forum, zapisalem sam txt bez grafy ;/ zaczalem teraz przegladac kod i z tego co widze, w kodzie mam zachowane adresy grafik/zdjec itp smile.gif problem w tym, ze tych stron jest taka masa, ze recznie nie dam rady odpalic kazdej z nich zeby zapisac sobie pamiatkowe foty (o ile sa jeszcze online) na dysku.

wpadlem wiec na pomysl, by napisac skrypt ktory przeszpera mi html`a zrzutow i wylapie tekst zawarty pomiedzy tagami <img...></img>. teoretycznie uzyskalbym w ten spos spis adresow grafik ktory moglbym podac do jakiegos softu ssajacego i zamiast recznie klikac [zapisz jako] - soft zrzucilby mi je ladnie na hdd.

problem w tym, ze.. nijak nie mam pomyslu jak toto napisac ;/
nie mam zielonego pojecia jak wylapac WSZYSTKIE ciagi od <img...> do </img> znajdujace sie w tekscie.

probowalem bawic sie wyrazeniami regularnymi, ale one tylko sa w stanie (na poziomie ktory znam) powiedziec, czy taki ciag wystepuje w kodzie [tekscie]. jak inaczej do tego podejsc?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
myth
post 3.02.2007, 12:26:42
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 25.09.2006

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


  1. <?php
  2. /* nazwa pliku */
  3. $sFile = "aaa.txt";
  4.  
  5. $sHandle = fopen($sFile, "r");
  6. $sHtml = fread($sHandle, filesize($sFile));
  7. fclose($sHandle);
  8.  
  9. preg_match_all('#<img src="([A-Za-z0-9_.:/]+)"></img>#si', $sHtml, $aMatches);
  10.  
  11. $cntArray = count($aMatches[1]);
  12. for($i = 0; $i < $cntArray; $i++)
  13. {
  14. echo $aMatches[1][$i].'<br />';
  15. }
  16. ?>


Przykładowo z
<img src="http://wp.pl/1.jpg"></img>
wyciągnie
http://wp.pl/1.jpg

Powinno być ok, pisane na szybko.

Ten post edytował myth 3.02.2007, 12:27:12
Go to the top of the page
+Quote Post
bendi
post 3.02.2007, 12:43:54
Post #3





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


sama regulka moze byc bardziej uniwersalna (jak atrybut src nie wystepuje jako pierwszy)
Kod
#<img.*?src=("|')?(.*?)(?(1)$1| )#


--------------------
Go to the top of the page
+Quote Post
esos
post 3.02.2007, 13:09:19
Post #4





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 7.08.2005
Skąd: zabrze

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


rozwiazalem to w jeszcze inny sposob:
kod wczytuje jako zmienna i wykorzystuje takie 'cóś' co wygrzebalem na php.net winksmiley.jpg

  1. <?php
  2. function Return_Substrings($text, $sopener, $scloser)
  3.  {
  4.  $result = array();
  5.  
  6.  $noresult = substr_count($text, $sopener);
  7.  $ncresult = substr_count($text, $scloser);
  8.  
  9.  if ($noresult < $ncresult)
  10.  $nresult = $noresult;
  11.  else
  12.  $nresult = $ncresult;
  13.  
  14.  unset($noresult);
  15.  unset($ncresult);
  16.  
  17.  for ($i=0;$i<$nresult;$i++) 
  18.  {
  19.  $pos = strpos($text, $sopener) + strlen($sopener);
  20.  
  21.  $text = substr($text, $pos, strlen($text));
  22.  
  23.  $pos = strpos($text, $scloser);
  24.  
  25.  $result[] = substr($text, 0, $pos);
  26.  
  27.  $text = substr($text, $pos + strlen($scloser), strlen($text));
  28.  }
  29.  
  30.  return $result;
  31.  }
  32.  $string = $kodWWW;
  33.  
  34.  $result = Return_Substrings($string, "src=", ">");
  35. ?>


odczytuje potem tablice result[] i wybijam jeszcze przez str_replace wszelakie apostrofy ktore mi sie ostaly - w ten spos zawsze wykona mi sie warunek bez wzgledu na to, czy apostrofy byly poj, po2, czy nie bylo ich wcale

dzieki za pomoc smile.gif
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:17