Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] preg_match filtracja znacznika a
Forum PHP.pl > Forum > Przedszkole
reyne
Witam, mam kod:

  1. $src = '
  2. <div id="articleMainImage">
  3. <a class="lightBox" href="/images/611/8.JPG"><img alt="" src="/images/611/8.JPG"></a>
  4. <span></span>
  5. </div>
  6. ';
  7. preg_match('/<a class="lightBox">([^<]+)<\/a>/uis', $src, $match);
  8. print_r($match);
  9.  


Docelowo chcę uzyskać adres obrazka z atrybutu src znacznika img, próbowałem już z kilkoma przykładami z google ale dalej nie styka (tablica jest pusta).
Jak przefiltrować te dane? smile.gif
Sebek87
  1. preg_match('/src="([^"]*)"/', $src, $match);
  2. echo $match[1];
reyne
ok ok ale ja bym chciał pobrać konkretny img, który tylko znajduje się w tym divie - <div id="articleMainImage">, bo to jest kawałek kodu całej strony (i wtedy może mi pobrać nie te img tylko inne), jak to zrobić?
jaslanin
http://simplehtmldom.sourceforge.net/
reyne
ciekawe API smile.gif, prawie wszystko się udało aczkolwiek mam jeden problem,
kod poniżej pobiera obrazek z artykulu

  1.  
  2. $html = file_get_html('http://linkdostrony.pl/link-do-artykulu');
  3. foreach($html->find('div[id=container] p img') as $e) {
  4. $photo = "<img src='".$e->src."'>";
  5. }
  6.  


Czasem na stronie pojawi się więcej niż jedno zdjęcie, jak w takim razie zrobić żeby zmienna photo pobierała zawsze tylko pierwsze jedno zdjęcie, czy da się te dane poprawnie pobrać do zmiennej $photo bez pętli?
jaslanin
http://simplehtmldom.sourceforge.net/manual_api.htm

find ( string $selector [, int $index] ) Find elements by the CSS selector. Returns the Nth element object if index is set, otherwise return an array of object.
reyne
ok mam, jakby ktoś potrzebował:

  1. $photo = $html->find('div[id=container] p img', -1);


dzx wink.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.