Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pobieranie danych z kodu strony
Forum PHP.pl > Forum > Przedszkole
lesar
Na wstępie zaznaczam że przeglądałem tematy o podobnej tematyce i na nic rozsądnego nie wymyśliłem

mam sobie o to taki kod w jeden ze stron (wklejam tylko część która mnie interesuje bo cały ma z 400 linijek)
  1. <td class="value">T82</td>
  2. <td class="right value">17</td>
  3. <td class="right value">11</td>


z tego kodu interesuje mnie T82 i 17

  1. <?php
  2. //adres ukryłem
  3. $url="sadasdasd";
  4.  
  5. if(!($zawartosc = file_get_contents($url)))
  6. {
  7. echo "Otwarcie URL niemożliwe";
  8. }
  9.  
  10. $wzor = 't82</td><td class=\"right value\">'.[0-9].'</td>';
  11.  
  12. if(eregi($wzor, $zawartosc))
  13. {
  14. echo 't82='. questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif;
  15.  
  16. };
  17.  
  18. ?>


Wiem że mam błąd w linii 11 ale za chiny nie wiem co wpisać zamiast [0-9] bo 17 tam nie wstawię bo równie dobrze może być tam inna liczba
Jak z tego wyświetlić np. t82=17 ?
Pewnie odpowiedź jest banalna ale ja jej nie widzę sad.gif
gargamel
Poczytaj o np. preg_replace
Gość
  1. if( preg_match('/t82<\/td><td class=\"right value\">([0-9]{1,})<\/td>/', $zawartosc, $matches) ){
  2. echo 'T82 = '.$matches[1];
  3. }
by_ikar
phpQuery, jak bawiłeś się kiedyś jquery, to tutaj dostęp do DOM masz identycznie łatwy i szybki. Często go używam jeżeli z innej strony potrzebuje pobrać wartość tylko jakiegoś elementu, lub kilku elementów.
lesar
  1. <?php
  2. $url="http://uc.worldoftanks.eu/uc/accounts/500482545-lesar/";
  3.  
  4. if(!($zawartosc = file_get_contents($url)))
  5. {
  6. echo "Otwarcie URL niemożliwe";
  7. }
  8.  
  9. $wzor='/T82<\/td><td class=\"right value\">([0-9]{1,})<\/td>/';
  10.  
  11. if( preg_match($wzor, $zawartosc, $matches))
  12. {
  13. echo 'T82 = '.$matches[1];
  14. }
  15. else
  16. {
  17. echo 'nie ma';
  18. }
  19. ?>


coś chyba jest jeszcze nie tak bo nie wyświetla t82=17 a wyświetla "nie ma".
nospor
Ja tam w kodzie strony widzę enter między komórkami, które nie raczyłeś uwzględnić u siebie.
lesar
  1. $wzor='/T82<\/td>\n<td class=\"right value\">([0-9]+)<\/td>/';


chodziło o dodanie \n ? jeśli tak to nadal nie działa
nospor
W wyrazeniu regularnym entery (białe znaki) dodaje się ciut inaczej. W pierwszym lepszym kursie o wyrażeniach to wyjasniają.

Poza tym enter to tylko jeden z brakujących znaków. Są tam też i spacje
lesar
  1. $wzor='/T82<\/td>([\r\n\s]+)<td class=\"right value\">([0-9]+)<\/td>/';


dobra już coraz bliżej jestem. teraz wyświetla mi T82=Array, gdzie jeszcze robię byki ?
nospor
print_r($matches);
lesar
  1. <?php
  2. $url="http://uc.worldoftanks.eu/uc/accounts/500482545-lesar/";
  3.  
  4. if(!($zawartosc = file_get_contents($url)))
  5. {
  6. echo "Otwarcie URL niemożliwe";
  7. }
  8.  
  9. $wzor='/T82<\/td>([\r\n\s]+)<td class=\"right value\">([0-9]+)<\/td>/';
  10.  
  11. if( preg_match_all($wzor, $zawartosc, $matches))
  12. {
  13. echo 'T82='.$matches[2][0];
  14. }
  15. else
  16. {
  17. echo 'nie ma';
  18. }
  19. ?>

ostateczna wersja
big thx za pomoc!
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.