Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pobranie linków preg_match_all
Forum PHP.pl > Forum > Przedszkole
raker34
Witam,
mam problem z pobraniem linków z kodu strony. Linki są w kodzie przestawione w następujący sposób:

  1. <h2><a href="http://url.pl"><span>Anchor text</span></a></h2>


próbowałem w ten sposób:

  1. preg_match_all('/<h2><a href="([^`]*?)"><span>([^`]*?)<\/span><\/a><\/h2>/', $html, $wynik);


ale niestety nie dało to efektu.

Dzieki za pomoc

!*!
Dziwne, u mnie działa.
raker34
Dziwne, tzn u mnie też działa smile.gif.
Powiem wprost, chodzi o pobranie listy aukcji z allegro np. z takiego linka http://allegro.pl/listing/listing.php?id=84735

Struktura linka jest taka jak podałem czyli:
  1. <h2><a href="/piornik-fc-barcelona-messi-nowosc-2013-ss-i3052323718.html"><span>Piórnik FC Barcelona Messi NOWOŚĆ 2013 SS</span></a></h2>


i tutaj już nie działa :/

czyli cały kod wygląda tak:

  1. $code = file_get_contents("http://allegro.pl/listing/listing.php?id=84735");
  2.  
  3. preg_match_all('/<h2><a href="([^`]*?)"><span>([^`]*?)<\/span><\/a><\/h2>/', $code, $aukcje);
  4.  
  5. var_dump($aukcje);
!*!
Znowu dziwne, ale u mnie działa. Pobiera link i nazwę.
nospor
tja.... tylko na stronie span jest w nowej linii....
raker34
nie wiem czemu ale mi var_dump zwraca

  1. array (size=3)
  2. 0 =>
  3. array (size=0)
  4. 1 =>
  5. array (size=0)
  6. 2 =>
  7. array (size=0)
nospor
Ponieważ span jest w nowej linii a to ma się nijak do twojego wyrażenia.
raker34
Cytat(nospor @ 8.03.2013, 10:18:33 ) *
tja.... tylko na stronie span jest w nowej linii....


u mnie jest w tej samej, być może to kwestia rozciągnięcia okna smile.gif
nospor
Nie, patrzyłem w źródle strony i wyraźnie jest w nowej lini
<a href="/piornik-fc-barcelona-2k-2012-2013-or-x-i3070078971.html" class="alleLink iTitle asTitle">
<span>PIÓRNIK FC BARCELONA 2K 2012-2013 or X</span>
</a>
raker34
OK, chyba problem jest rozwiązany, chodzi o to, że prawdopodobnie allegro wyświetla różny kod w zależności od przeglądarki. W chromie wygląda to nieco inaczej, a po zapisaniu kodu do pliku z poziomu php wygląda tak jak #nospor pokazał
!*!
Nie opieraj się na tym co zwraca przeglądarka, a na tym co masz w PHP.

nospor
Ja właśnie mówiłem o tym, co zwraca php. I php mi zwraca span w nowej linii tongue.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.