Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie konkretnych informacji z innej strony
Forum PHP.pl > Forum > Przedszkole
Lysy
Czy jest możliwe pobranie jakiejś konkretnej informacji z innej strony www? Załóżmy, że chciałbym pobrać i wyświetlić aktualny ranking(dane te zmieniają się co kilka miesięcy, i stąd taka potrzeba) Kasparowa ze strony http://www.fide.com/ratings/card.phtml?event=4100018 (chodzi o tę liczbę "2817")
Anonymous
tak, to jest możliwe. mam jednak watpliwosci, czy zachodzi potrzeba pisania kodu do wyciagania jednej wartosci, ktora sie zmienia raz na kilka miesiecy. zakladajac ze uklad strony sie w tym czasie nie zmieni przypuszczam, ze lepiej to zrobic recznie.

co prawda cwiczenie czyni mistrza, ale tez nie nalezy mnozyc bytow bez potrzeby. pozdrawiam.

ps. nie zaprzega sie konia do jazdy na wrotkach :wink:
Foxx
Możesz pobrać stronę do tablicy za pomocą funkcji file(), wybrać z tej tablicy linię w której jest szukana informacja [w Twoim przypadku linia 57] i z tej linii wyłuskać swoją informację. Może to wyglądać tak:
[php:1:9fc04f98f6]<?php
$tablica = file("http://www.fide.com/ratings/card.phtml?event=4100018");
$licznik=0;
foreach($tablica as $linia){
if($licznik == "56"){
echo $linia."<BR>";
}
$licznik++;
}
?>[/php:1:9fc04f98f6]
Ta linia jest dosyć pokaźna, możesz użyć na przykład explode()
[php:1:9fc04f98f6]<?php
$tablica = explode("Current rating:</td><td colspan=3>&nbsp;", $linia);
?>[/php:1:9fc04f98f6]
a potem wyświetlić pierwsze 4 znaki z $tablica[1]...
Ale dam głowę ze jest prostszy sposób
Lysy
Cytat
tak, to jest możliwe. mam jednak watpliwosci, czy zachodzi potrzeba pisania kodu do wyciagania jednej wartosci, ktora sie zmienia raz na kilka miesiecy. zakladajac ze uklad strony sie w tym czasie nie zmieni przypuszczam, ze lepiej to zrobic recznie.

co prawda cwiczenie czyni mistrza, ale tez nie nalezy mnozyc bytow bez potrzeby. pozdrawiam.

ps. nie zaprzega sie konia do jazdy na wrotkach :wink:

Gdyby nie było potrzeby, to bym nie zapytał biggrin.gif
Tworzę na stronie listę szachistów z zachodniopomorskiego i w chwili obecnej zawiera ona około 30 nazwisk. Za pewnik można przyjąć, że w niedługim czasie, powiększy sie ona conajmiej dwukrotnie.

Czas działania skryptu, nie gra dla mnie roli, zamierzam go uruchamiać tylko po aktualizacji listy rankingowej, zapisać wyniki do bazy danych, a na stronie wyświetlać te wyniki, bez pośrednictwa powyższego skryptu.
Chewolf
Cytat
Ale dam głowę ze jest prostszy sposób

Można poprzez wyrażenia regularne...
Lysy
Cytat
Cytat
Ale dam głowę ze jest prostszy sposób

Można poprzez wyrażenia regularne...

A jak to zrobić?
Lysy
Korzystając z okazji, chciałem zapytać o jeszcze jedną sprawę.
Co zrobić, aby skrypt w zależności od użytego separatora w pliku, stosował w funkcji explode ten sam, któy jest aktualnie użyty w pliku. Chodzi o to, że istnieje możliwość, że dane w pliku stworzonym przez jedną osobę mogą byc odzielone przy pomocy ;, a przez inną np. |
Foxx
No da się, jeżeli masz konkretny zestaw dopuszczalnych separatorów, wrzucić go do tablicy i brać taki wpis, szukać w nim któregoś z elementów tablicy, czyli któregoś z separatorów i w zależności od tego który znalazłeś, użyć odpowiedniego explode() [za pomocą if]
Ale to nie brzmi dobrze... lepiej zunifikować sepratory bo może się zrobić bałagan
cboot
No właśnie, bo co jeśli to, co jeden użytkownik chce użyć jako separatora, inny używa jako normalnego znaku? Żeby temu zapobiec wszystkie warianty separatorów musiałyby być zastrzeżone i robią się komplikacje.
Usr
Cytat
Możesz pobrać stronę do tablicy za pomocą funkcji file(), wybrać z tej tablicy linię w której jest szukana informacja [w Twoim przypadku linia 57] i z tej linii wyłuskać swoją informację. Może to wyglądać tak:
[php:1:bfcf59c089]<?php
$tablica = file("http://www.fide.com/ratings/card.phtml?event=4100018");
$licznik=0;
foreach($tablica as $linia){
if($licznik == "56"){
 echo $linia."<BR>";
}
$licznik++;
}
?>[/php:1:bfcf59c089]
Ta linia jest dosyć pokaźna, możesz użyć na przykład explode()  
[php:1:bfcf59c089]<?php
$tablica = explode("Current rating:</td><td colspan=3>&nbsp;", $linia);
?>[/php:1:bfcf59c089]
a potem wyświetlić pierwsze 4 znaki z $tablica[1]...  
Ale dam głowę ze jest prostszy sposób


Niestety ten skrypt nie dziala sad.gif Moglby ktos go poprawic :?:
Dravo
Blad lezy tu:
Cytat
[php:1:6a0efeedd3]<?php
$tablica = file("http://www.fide.com/ratings/card.phtml?event=4100018");
$licznik=0;
foreach($tablica as $linia){
   if($licznik == "56"){
       echo $linia."<BR>";
   }
   $licznik++;
}
?>[/php:1:6a0efeedd3]

Raz że można to zrobić prościej, dwa że tak radzi manual (jest to przykład dokładnie przepisany ze zmianą nazw zmiennych tongue.gif).
[php:1:6a0efeedd3]<?php
$tablica = file("http://adres.pl/");
foreach($tablica as $linia => $tresc){
if($linia == '123')
{
echo $tresc;
}
}
?>[/php:1:6a0efeedd3]
Pamietaj : Czytaj Manuala BEDZIESZ WIELKI!

UPDATE: Zapomniałem zamknąć pętli. Proszę o trochę własnej incjatywy chociaż w tym...
Usr
Oj Panie WIELKI, cos nie dziala :?
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.