Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wyrażeniem regularnym
Forum PHP.pl > Forum > Przedszkole
djgarsi
Witam. Jak w temacie, mam problem z wyrażeniem regularnym. Otóż pobieram (chciałbym) liczbę stron zaindeksowanych w google i niestety nic.
Stronę googla pobiera skrypt, jednak wyrażenie regularne nie wybiera żądanego diva, zwraca pustą tablicę.
Oto moje wyrażenie:
  1. <?php
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, 'http://www.google.pl/search?hl=pl&q=site%3Astrona.pl');
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  5. $wynik = curl_exec($ch);
  6. curl_close($ch);
  7. $output = iconv('ISO-8859-2', 'UTF-8', $wynik);
  8.  
  9. preg_match_all('#<div id=resultStats>(.+?)</div>#is', $output, $tablica);
  10.  
  11. print_r($tablica);
  12. ?>
wNogachSpisz
Problem w tym że pojedyńcze wyrażenie regulane nie jest dobrym narzędziem do parsowania HTML'a
djgarsi
Czyli że na jakieś fragmenty to trzeba podzielić?
wNogachSpisz
Wręcz przeciwnie - sparsować jako całość, utworzyć drzewo DOM i traversować.
djgarsi
Już poradziłem:) Sparsowałem sobie diva wyżej i o dziwo działa.
A co do twojego pomysłu wNogachSpisz, jest ono bardziej optymalne dla serwera?
erix
Zależy. W każdym razie masz wówczas pewność, że jeśli przybędzie jakiś atrybut/zmieni się trochę markup, to Twój skrypt nadal będzie działać.
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.