Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pobieranie i wyświetlanie informacji z innych stron
Max Damage
post
Post #1





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

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


Mam taki oto książkowy kod. Oczywiście działa on bez zarzutu. Wyszukuje i wyświetla informację z innej strony. Bardzo mnie to zaciekawiło. Problem w tym, że chciałbym zrozumieć jak to się dzieje. Co jeśli np. chciałbym, aby pobrało mi informacje z rubryki obok? Domyślam się, że najważniejsze tkwi w napiasnych tu wyrażeniach regularnych. Czytałem o nich trochę, ale nadal nie widzę związku....
Może mi ktoś to wyjaśnić, a także opisać w jaki sposób skrypt pobiera dane akutar z tej konkretniej rubryki?

  1. <?php
  2. //wybór symbolu akcji
  3. $symbol='AMZN';
  4. echo "<h1>Kurs akcji o symbolu $symbol</h1>";
  5.  
  6. //Połączenie z URL-em i odczytanie informacji
  7. $url="http://www.amex.com/equities/listCmp/EqLCDetQuote.jsp?Product_Symbol=$symbol";
  8.  
  9. if(!($zawartosc = file_get_contents($url)))
  10. {
  11. echo 'Otwarcie URL niemożliwe';
  12. }
  13.  
  14. //odnalezienie i wyświetlenie właściwej części strony
  15. $wzor = '($[0-9 ]+.[0-9]+)';
  16.  
  17. if(eregi($wzor, $zawartosc, $kurs))
  18. {
  19. echo "<p>Ostatni kurs akcji $symbol: ";
  20. echo $kurs[1];
  21. echo '</p>';
  22. }
  23. else
  24. {
  25. echo '<p>Kurs niedostępny</p>';
  26. };
  27.  
  28. //powiadomienie o źródle
  29. echo '<p>'
  30.  .'Ta informacja została uzyskana z <br />'
  31.  ."<a href="$url">$url</a><br />"
  32.  .'w dniu '.(date('l jS F Y g:i a T')).'</p>';
  33.  
  34. ?>


Ten post edytował Max Damage 22.07.2007, 20:45:57


--------------------
"Wszyscy wiedzą, że czegoś nie da się zrobić, i przychodzi taki jeden, który nie wie, że się nie da, i on właśnie to robi." - Albert Einstein
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
grzegorzr
post
Post #2





Grupa: Zarejestrowani
Postów: 65
Pomógł: 3
Dołączył: 1.06.2007
Skąd: self::display()

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


eregi($wzor, $zawartosc, $kurs)

powyzsza funkcja szuka wzorca ($wzor) w zawartosci (czyli w zaladowanej stronie) i przypisuje odnaleziony wzorzec do zmiennej $kurs
Go to the top of the page
+Quote Post
--=[peterek]=--
post
Post #3





Goście







czyli jak np zrobić żeby pobierało mi informacje ze strony:
http://s2.metaldamage.onet.pl/game/highsco...amp;s=s&o=g
cały ranking?
Go to the top of the page
+Quote Post
Majzel
post
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 3.07.2007

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


mnie również to ciekawi, dlaczego zmienna tablicowa $kurs[1] ma akurat indeks 1 a nie np. 0 ?
jeżeli wpiszę "0" to wartość akcji tego symbolu jest za każdym przeładowaniem strony inna. Nie rozumiem, dlaczego indeks ma 1? no i podłączam się do pytania jak można by pobrać inne tego typu dane ze stron.
btw. te wyrażenie regularne
mówi tylko co musi spełniać pobrany wynik.

chyba korzystamy z tej samej książki ;]

Ten post edytował Majzel 4.08.2008, 17:33:36
Go to the top of the page
+Quote Post
kaem
post
Post #5





Grupa: Zarejestrowani
Postów: 248
Pomógł: 38
Dołączył: 29.06.2008

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


Niedawno mi to wytłumaczyli tutaj na forum, i nawet w oparciu o ten sam przykład -->
http://forum.php.pl/index.php?showtopic=98339&hl=
Go to the top of the page
+Quote Post
-gox-
post
Post #6





Goście







<?php
$url = 'http://s2.metaldamage.onet.pl/game/highscore.php?&a=1&s=s&o=g'
$fp = fopen($url, 'r');
$data='';
while(!feof($fp))$data.=fread($fp, 1024);
fclose($fp);

preg_match_all('#<tr>(.*?)</tr>#is', $data, $wiersze);
$wiersze = $wiersze[1];

foreach ($wiersze as $w) {
preg_match_all('#<td(.*?)/th>#is', $w, $kolumny);
$kolumny = $kolumny[1];
foreach ($kolumny as $k) {
preg_match('#>(.*?)<#', $k, $rekord);
$rekord = $rekord[1];
$rekord = # no i tutaj mamy po kolei kazdy rekordzik... teoretycznie...
}
}
?>

sa wyrazenia regularne i wyrazenia regularne, osobiscie jestem w tym temacie bardzo cienki, wiec jakos moich regexow jest zalozna, czyt. w ogole nie ma jakosci smile.gif
apel do koderow, w php6 funkcje ereg() zostaja usuniete z jadra, wiec powinnismy/cie przestawic sie na preg().
Go to the top of the page
+Quote Post
-lesar-
post
Post #7





Goście







nie będę zakładał nowego tematu więc napisze w tym
jak pobrać dane ze strony której zawartość jest wyświetlana przez skrypt a nie ma jej w kodzie źródłowym strony ?
np. http://uc.worldoftanks.eu/uc/clans/500002057--15I-/
w tym wypadku chodzi mi o listę graczy i linki do danych tych graczy. Proszę o jakąś podpowiedź businesssmiley.png
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 Aktualny czas: 20.08.2025 - 18:05