Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]pobieranie danych ze strony (bazy danych)
Forum PHP.pl > Forum > Przedszkole
kecaj_s
Witam,
na wstępie proszę o wyrozumiałość i nie pisać, że temat już był. Wiem to, bo przeszukałem to forum i inne miejsca w sieci. Jednakże jestem początkującym i potrzebuję bardziej "łopatologicznego" wyjaśnienia rozwiązania mego zadania.
Chodzi o to, że chcę pobrać wszystkie dane statystyczne ze strony oficjalnej Euro2012:
- http://pl.uefa.com/uefaeuro/season=2012/ma...2131/index.html - dane szczegółowe przykładowego meczu. Dokładnie to potrzebuję pobrać właśnie te dane ze wszystkich rozegranych w fazie eliminacyjnej meczy w każdej ze grup. Zależy mi tylko na tej jednej zakładce, czyli "PRZEGLĄD". Dane miałyby być pobierane tylko raz - nie są przecież aktualizowane. Dane te mogą być zapisywane w bazie MySQL (nie mam pomysłu co do układu).

Także chciałbym wyciągnąć wszystkie dane z tej strony: http://dobradieta.pl/tabele.php?cmd=show_entry&lp=9. Dotyczy to także pozostałych produktów ze strony: http://dobradieta.pl/tabele.php.

Spotkałem się z funkcją file_get_contnets, ale nie mam bladego pojęcia, jak napisać skrypt, aby zadziałał wlaśnie w sposób, jaki opisałem powyżej.

Z góry dziękuję za pomoc. To chyba jest właściwe miejsce (Przedszkole) na takie tematy.
Pozdrawiam,
Jacek
Kshyhoo
1.
  1. $zmienna = file_get_contents(adres strony)

2.
  1. preg_match_all("wyrazenie regularne",$zmienna, $costam)

Więcej w dziale "giełda", jak się zapewne domyślasz za $...
Fifi209
Cytat(kecaj_s @ 1.06.2012, 21:06:08 ) *
przykładowego meczu. Dokładnie to potrzebuję pobrać właśnie te dane ze wszystkich rozegranych w fazie eliminacyjnej meczy w każdej ze grup. Zależy mi tylko na tej jednej zakładce, czyli "PRZEGLĄD". Dane miałyby być pobierane tylko raz - nie są przecież aktualizowane. Dane te mogą być zapisywane w bazie MySQL (nie mam pomysłu co do układu).

Kraje, zawodnicy, mecze, mecze_zawodnicy

Zawodnicy połączeni z krajami
Mecze połączone z krajami (jaki z jakim)
mecze_zawodnicy - jaki mecz, który zawodnik etc. czy rezerwowy etc.
kecaj_s
Może być, ale jak te dane wyciągnąć??
Spawnm
Dostałeś odpowiedź od Kshyhoo, gotowca nie dostaniesz.
kecaj_s
OK, dzięki za odpowiedź. Może jest szansa na rozwinięcie tej odpowiedzi, np. jaki adres mam podstawiać (w jaki sposób wyciągnąć dane ze wszystkich meczy) - czy muszę pisać skrypt do każdego meczu i zmieniać adres, czy też nie? Jak to zapisać, czy od razu do bazy MySQL, czy do pliku, tabeli, a potem konwersja do MySQL? Nie oczekuję gotowca, ale jak to w przedszkolu - podpowiedzi i nakierowania :)
Pozdrawiam,
Jacek
Tajgeer
Jeśli masz trudności z wyrażeniami regularnymi, zainteresuj się PHP Simple HTML DOM Parser.
kecaj_s
Witam ponownie,
zacząłem kombinować i wyszło mi coś takiego:

  1. <?php
  2. $content=file_get_contents("http://pl.uefa.com//uefaeuro//season=2012//matches//round=15171//match=2002131//index.html");
  3. $pattern = '/(table class=\'halfwidth fl\'>)[a-zA-Z0-9]+[<]/';
  4. $ilosc=preg_match_all($pattern,$content,$match );
  5. for($i=0;$i<$ilosc;$i++)
  6. {
  7. $pocz = strpos($match[0][$i], '>');
  8. $zawodnik=substr($match[0][$i],$pocz+1);
  9. $t=explode('<',$zawodnik);
  10. $zawodnik=$t[0];
  11. $sklady[0][$i]=$zawodnik;
  12. }
  13. for($k=0; $k<$ilosc; $k++){
  14. echo "<br/>".$sklady[0][$k];
  15. }
  16. ?>

Chcę ze strony http://pl.uefa.com/uefaeuro/season=2012/ma...2131/index.html pobrać informacje o przebiegu meczu (składy, bramki, kartki, zmiany). Po próbie (mam odpalony lokalny serwer WebServ) wywołania pliku index.php otrzymuję komunikat "System nie może znaleźć określonej ścieżki".
Przy próbie wywołania pliku other.php o treści:
  1. <?php
  2. $content=file_get_contents("http://pl.uefa.com//uefaeuro//season=2012//matches//round=15171//match=2002131//index.html");
  3. $pocz = strpos($content, '<table class="pname noborder">');
  4. $content=substr($content, $pocz);
  5. $tab=explode('</table>' ,$content);
  6. $content=$tab[0];
  7. echo $content."</table>";
  8. ?>

pojawia się pobrana strona.
Jaki zrobiłem błąd w pierwszym skrypcie?
Dzięki za pomoc,
Jacek
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.