Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]pobieranie danych z kodu strony
-lesar-
post 16.10.2011, 22:01:59
Post #1





Goście







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
Go to the top of the page
+Quote Post
gargamel
post 16.10.2011, 22:15:33
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 35
Dołączył: 25.06.2010

Ostrzeżenie: (0%)
-----


Poczytaj o np. preg_replace
Go to the top of the page
+Quote Post
-Gość-
post 16.10.2011, 22:50:00
Post #3





Goście







  1. if( preg_match('/t82<\/td><td class=\"right value\">([0-9]{1,})<\/td>/', $zawartosc, $matches) ){
  2. echo 'T82 = '.$matches[1];
  3. }
Go to the top of the page
+Quote Post
by_ikar
post 17.10.2011, 08:09:43
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
-lesar-
post 17.10.2011, 10:02:14
Post #5





Goście







  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".
Go to the top of the page
+Quote Post
nospor
post 17.10.2011, 10:04:49
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ja tam w kodzie strony widzę enter między komórkami, które nie raczyłeś uwzględnić u siebie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-lesar-
post 17.10.2011, 11:09:42
Post #7





Goście







  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
Go to the top of the page
+Quote Post
nospor
post 17.10.2011, 11:42:53
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-lesar-
post 17.10.2011, 12:04:07
Post #9





Goście







  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 ?
Go to the top of the page
+Quote Post
nospor
post 17.10.2011, 12:06:41
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




print_r($matches);


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-lesar-
post 17.10.2011, 13:24:56
Post #11





Goście







  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!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:22