Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pobieranie konkretnych informacji z innej strony
Lysy
post 15.05.2004, 00:15:43
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.06.2002
Skąd: Szczecin

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


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")


--------------------
[size=9]Teoria wszystkiego pozwoli nam stać się "panami Wszechświata"
Go to the top of the page
+Quote Post
post 15.05.2004, 01:15:10
Post #2





Grupa:
Postów: 0
Pomógł:
Dołączył: --

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


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:
Go to the top of the page
+Quote Post
Foxx
post 15.05.2004, 01:21:08
Post #3





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


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
Go to the top of the page
+Quote Post
Lysy
post 15.05.2004, 08:07:36
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.06.2002
Skąd: Szczecin

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


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.


--------------------
[size=9]Teoria wszystkiego pozwoli nam stać się "panami Wszechświata"
Go to the top of the page
+Quote Post
Chewolf
post 15.05.2004, 08:59:03
Post #5





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

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


Cytat
Ale dam głowę ze jest prostszy sposób

Można poprzez wyrażenia regularne...
Go to the top of the page
+Quote Post
Lysy
post 16.05.2004, 00:25:38
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.06.2002
Skąd: Szczecin

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


Cytat
Cytat
Ale dam głowę ze jest prostszy sposób

Można poprzez wyrażenia regularne...

A jak to zrobić?


--------------------
[size=9]Teoria wszystkiego pozwoli nam stać się "panami Wszechświata"
Go to the top of the page
+Quote Post
Lysy
post 16.05.2004, 15:16:22
Post #7





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 18.06.2002
Skąd: Szczecin

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


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. |


--------------------
[size=9]Teoria wszystkiego pozwoli nam stać się "panami Wszechświata"
Go to the top of the page
+Quote Post
Foxx
post 16.05.2004, 16:23:03
Post #8





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

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


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
Go to the top of the page
+Quote Post
cboot
post 16.05.2004, 16:38:54
Post #9





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

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


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.
Go to the top of the page
+Quote Post
Usr
post 21.05.2004, 17:12:20
Post #10





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.05.2004

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


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 :?:
Go to the top of the page
+Quote Post
Dravo
post 21.05.2004, 17:51:12
Post #11





Grupa: Zarejestrowani
Postów: 207
Pomógł: 0
Dołączył: 7.09.2003

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


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...


--------------------
Oooo, cia is on the phone... Ok, I got it. Shit I lost it.
Go to the top of the page
+Quote Post
Usr
post 21.05.2004, 18:04:21
Post #12





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 21.05.2004

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


Oj Panie WIELKI, cos nie dziala :?
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: 26.04.2024 - 08:18