Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]file_get_centents, problem z pobraniem danych
Forum PHP.pl > Forum > Przedszkole
dr_NO
Witam, mam niemały problem, strona z której przykładowo potrzebuję wyciągnąć statystyki konkretnego gracza:
http://atlantica.ndoorsgames.com/center/co...amp;x=0&y=0
Jak wejdziecie na nią, to zobaczycie 2 tabele, próbuję wyciągnąć z podświetlonego wiersza z drugiej tabeli (konkretny server) gry dane o graczu,
Napisałem coś takiego:
  1. <?php
  2. $str_text = file_get_contents('http://atlantica.ndoorsgames.com/center/community/rank.asp?server=4&player='.$_GET['gracz'].'&x=0&y=0');
  3. $gracz=$_GET['gracz'];
  4. $server2 = 'Macedon';
  5.  
  6. eregi("<div style='width:60px; color:#FFFFFF;' class='rank_row'>Macedon</div><div style='width:82px; color:#FFFFFF;' class='rank_row ellipsis'>$gracz</div><div style='width:42px; color:#00ffff;' class='rank_row'>(.*)</div><div style='width:47px; color:#ffcc00;' class='rank_row'>(.*)</div><div style='width:67px; color:#FFFFFF;' class='rank_row'>(.*)</div><div style='width:48px; color:#FFFFFF;' class='rank_row'>(.*)</div><div style='width:42px; color:#00ffff;' class='rank_row'>(.*)</div><div style='width:100px; color:#00ffff;' class='rank_row ellipsis'>(.*)</div><div style='width:32px; color:#00ffff;' class='rank_row'>(.*)</div></div>", $str_text, $mydata);
  7.  
  8.  
  9. $im = imagecreatefromjpeg("background.jpg");
  10.  
  11. $textcolor = imagecolorallocate($im, 255, 255, 255);
  12.  
  13.  
  14. $i = 1;
  15. imagestring($im, 5, 250, 20 + ($i * 15), 'Server: '.$server2, $textcolor);
  16. imagestring($im, 5, 250, 20 + ($i * 30), 'Postac: '.$gracz, $textcolor);
  17. imagestring($im, 5, 250, 20 + ($i * 45), 'Wygrane: '.$mydata[4], $textcolor);
  18. imagestring($im, 5, 250, 20 + ($i * 60), 'Przegrane: '.$mydata[5], $textcolor);
  19. imagestring($im, 5, 250, 20 + ($i * 75), 'Gildia: '.$mydata[6], $textcolor);
  20. imagestring($im, 5, 250, 20 + ($i * 90), 'Poziom: '.$mydata[7], $textcolor);
  21.  
  22.  
  23. header("Content-Type: image/jpeg");
  24. imagejpeg($im);
  25. ?>
  26.  

I wszystko byłoby fajnie, gdyby nie jedno ale... mianowicie, skrypt pobiera dane ale ostatniej pozycji z tabeli, co oczywiście jest błędem, powinien pobrać według reguły wiersz, w którym występuje nazwa gracza ($gracz).
Co robię źle? Nie ogarniam tego ;/
sada
  1. <?php
  2. $znak0='back_red.jpg';
  3. $znak1='back_red.jpg';
  4. $pocz[1]='<b>';
  5. $kon[1]='</b>';
  6. $pocz[2]="rank_row'>";
  7. $kon[2]='</';
  8. $pocz[3]="ellipsis'>";
  9. $kon[3]='</';
  10. $pocz[4]="rank_row'>";
  11. $kon[4]='</';
  12. $pocz[5]="rank_row'>";
  13. $kon[5]='</';
  14. $pocz[6]="rank_row'>";
  15. $kon[6]='</';
  16. $pocz[7]="ellipsis'>";
  17. $kon[7]='</';
  18. $pocz[8]="rank_row'>";
  19. $kon[8]='</';
  20.  
  21.  
  22. $data = file_get_contents('http://atlantica.ndoorsgames.com/center/community/rank.asp?server=4&player=Akashi&x=0&y=0');
  23.  
  24.  
  25. $data= strstr($data,$znak0); //bez tych dwóch linijek z tabeli pierwszej
  26. $data=substr($data,strlen($znak0)); //
  27. $data= strstr($data,$znak0);
  28. $data=substr($data,strlen($znak0));
  29. for ($i=1;$i < 9; $i++){
  30. $data= strstr($data,$pocz[$i]);
  31. $data=substr($data,strlen($pocz[$i]));
  32. $poz = strpos ($data,$kon[$i]);
  33. $wyniki[$i]=(substr($data,0,$poz));
  34. echo $wyniki[$i].' ';
  35. }
  36. ?>
  37.  
  38.  
  39.  


Może kod nie jest optymalny , ale przy zmianie w kodzie szybko można się przystosować.
Oczywiście w adres można wkleić numer serwera i gracza.
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-2024 Invision Power Services, Inc.