Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pobieranie i wyświetlanie informacji z innych stron
Forum PHP.pl > Forum > Przedszkole
Max Damage
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. ?>
grzegorzr
eregi($wzor, $zawartosc, $kurs)

powyzsza funkcja szuka wzorca ($wzor) w zawartosci (czyli w zaladowanej stronie) i przypisuje odnaleziony wzorzec do zmiennej $kurs
-=[peterek]=-
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?
Majzel
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 ;]
kaem
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=
gox
<?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().
lesar
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
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.