Pobieranie konkretnych informacji z innej strony |
Pobieranie konkretnych informacji z innej strony |
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"
|
|
|
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: |
|
|
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> ", $linia); ?>[/php:1:9fc04f98f6] a potem wyświetlić pierwsze 4 znaki z $tablica[1]... Ale dam głowę ze jest prostszy sposób |
|
|
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ł 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"
|
|
|
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... |
|
|
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"
|
|
|
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"
|
|
|
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 |
|
|
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.
|
|
|
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> ", $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 Moglby ktos go poprawic :?: |
|
|
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 ). [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.
|
|
|
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 :?
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 08:18 |