Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pobieranie zdjęć
Forum PHP.pl > Forum > Przedszkole
Michał90
Witam,
jak pobrać za pomocą curl zdjęcia ebooków ze strony www.zlotemysli.pl aby pasowały do tytułów?

Pozdrawiam
thek
Obczaić wzorzec, który pozwala na to. Zapewne skorzystanie z wyrażenia regularnego da tu satysfakcjonujące rezultaty smile.gif
Michał90
Mam coś takiego:

  1. <?php $imgg='/<img src="\/images\/blobs\/(.*)\/(.*)\/" /';
  2. preg_match_all($imgg, $sData, $img);
  3. $img = array_pop($img);
  4.  
  5. echo '<img src="http://www.zlotemysli.pl/images/blobs/'.$img[$i].'/54x80.jpg"/>';
  6. ?>


ale coś nie chce działać sad.gif
thek
Chcesz z tytułami?
Rotujący element z audiobookami: Zbadaj: <div class="infiniteCarousel">
Nowości: <div id="news">
Polecane: <div id="recommended">

Za każdym razem to co chcesz, czyli tytuły i obrazki są w jakimś rodzaju listy. Ogólnie PLUS za dobre zauważenie wzorca i wyrażenie wyglada na pierwszy rzut oka poprawnie. Dalej jak dla mnie jest błąd. lepiej sprawdź CO zawiera zmienna $img. No i dlaczego masz $img[$i], skoro $i nigdzie nawet nie tworzysz winksmiley.jpg Domyślnie więc skrypt pewnie głupieje lub próbuje zrobić $img[0] smile.gif Nigdy nie sprawdzałem jak w takiej sytuacji zareaguje.
Michał90
Zmienna $img = Array.. sad.gif
thek
Jejku... skoro masz $img jako Array to zobacz co ona zawiera i jak sie do tego odwołać, czyli jaki indeks ma szukana przez Ciebie dana, a więc pod jakim indeksem tablicowym kryje sie ten nieszczęsny id... var_dump($img) i będzie wszystko jasne.
Michał90
Otrzymuję wynik array(0) { } sad.gif, a więc złą ścieżkę podaję?
thek
To znaczy, że nie znalazł żadnego pasującego wzorca. Lepiej sprawdż co dostajesz od razu po wyrażeniu regularnym, bo już tam pewnie brak pasujących wyników, a jeśli tak, to znaczy, że albo wyrażenie regularne ma jakiś babol, albo dane do niego, czyli $sData jest skopane.
Michał90
Zrobiłem taki trick (jestem noobkiem w php)

  1. $imgg='/<div id="news"><a class="cover" href="(.*)"><img src="\/images\/blobs\/(.*)\/54x80.jpg" /';


- nie wyswietla

  1. $imgg='/<a class="cover" href="(.*)"><img src="\/images\/blobs\/(.*)\/54x80.jpg" /';


- wyświetla ale nie z tego diva... dlaczego jak daję żeby pobierało z <div id="news"> to nie chce pobrać? sad.gif
thek
Ponieważ to pierwsze jest błędnym wyrażeniem. Sugerujesz mu, że ma znaleźć ciąg
<div id="news"><a class="cover" href="
i pobrać to co dalej. A jesteś pewien, że w kodzie to wygląda identycznie? Ja zerknąłem i to wygląda zupełnie inaczej. Ja na Twoim miejscu nie bawiłbym się w wyrażenia regularne, ale xpath.
Wyciągnięcie linka /html/body/div[5]/div[4]/div/div[2]/ol/li/a/@href
Wyciągnięcie src /html/body/div[5]/div[4]/div/div[2]/ol/li/a/img/@src

Właściwie to nie linka, bo to Ci zwróci tablicę linków oraz to drugie tablicę src obrazków. Jeśli chcesz tylko jeden to chyba zauważyłeś, że wystarczy podać w nawiasie kwadratowym numer smile.gif
Michał90
No kod wygląda troche inaczej smile.gif

  1. <div id="news">
  2. <h2><img src="/images/www/layout_default/nowosci.gif" alt="Nowości" /></h2>
  3. <ol>
  4. <li>


Ale jak dam tak:
  1. $imgg='/<div id="news"><h2><img src="\/images\/www\/layout_default\/nowosci.gif" alt="Nowości" \/></h2><ol><li><a class="cover" href="(.*)"><img src="\/images\/blobs\/(.*)\/54x80.jpg" \/><\/a> /';


to i tak nie pobiera sad.gif
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.