Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd odczytu z simple_html_dom
Forum PHP.pl > Forum > PHP
majesgrudziadz
Witam ... mam gdzieś błąd w kodzie mianowicie w //REZULTATY i nie mogę sobie poradzić ...

  1. <?php
  2.  
  3. include_once('simple_html_dom.php');
  4.  
  5.  
  6. //ŁĄCZENIE SIĘ ZE STRONĄ STATYSTYK
  7. $ch = curl_init("http://worldoftanks.eu/community/accounts/502674822-majes_pl/");
  8. curl_setopt($ch, CURLOPT_HEADER, 0);
  9. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  10. $output= curl_exec($ch);
  11.  
  12.  
  13. //KONWERSJA HTML DOM
  14. $html = str_get_html($output);
  15.  
  16.  
  17.  
  18. //DATA REJESTRACJI
  19. foreach( $html->find('div.b-data-create') as $b ) {
  20. $stamp = $b->find('span',0);
  21. $wotStats['register'] = $stamp->getAttribute('data-timestamp');
  22. }
  23.  
  24. //DATA AKTUALIZACJI
  25. foreach( $html->find('div.b-data-date') as $b) {
  26. $stamp = $b->find('span',0);
  27. $wotStats['update'] = $stamp->getAttribute('data-timestamp');
  28. }
  29.  
  30. //INFO KLANOWE
  31. foreach ($html->find('div.b-clan-list') as $b) {
  32.  
  33. $wotStats['clan_url'] = $b->find('a',0)->getAttribute('href');
  34. $wotStats['clan_img'] = $b->find('img',0)->getAttribute('src');
  35. $wotStats['clan_tag'] = $b->find('span.tag',0)->plaintext;
  36. $wotStats['clan_name'] = $b->find('span.name',0)->plaintext;
  37. $wotStats['clan_motto'] = $b->find('p.motto',0)->plaintext;
  38. $wotStats['clan_days'] = $b->find('td.first',0)->find('span',0)->plaintext;
  39. $wotStats['clan_enrolled'] = $b->find('td.first',0)->next_sibling()->find('span',0)->getAttribute('data-timestamp');
  40. }
  41.  
  42. //REZULTATY
  43. foreach($html->find('table.t-table-dotted') as $t) {
  44.  
  45. $table = $t->find('th',0)->plaintext;
  46.  
  47. if ($table == "Overall Results")
  48. {
  49. $wotStats['battles'] = fixStat($t->find('td.td-number-nowidth',0)->plaintext);
  50. $wotStats['victories'] = fixStat($t->find('td.td-number-nowidth',1)->plaintext);
  51. $wotStats['defeats'] = fixStat($t->find('td.td-number-nowidth',2)->plaintext);
  52. $wotStats['survived'] = fixStat($t->find('td.td-number-nowidth',3)->plaintext);
  53. }
  54. }
  55.  
  56.  
  57. echo 'Data rejestracji: '.$wotStats['register'].' - '.date("d.m.Y", $wotStats['register']).'<br>';
  58. echo 'Dane z: '.$wotStats['update'].' - '.date("d.m.Y", $wotStats['update']).'<br>';
  59.  
  60. echo 'Url klanu: '.$wotStats['clan_url'].'<br>';
  61. echo 'Img klanu: '.$wotStats['clan_img'].'<br>';
  62. echo 'Tag klanu: '.$wotStats['clan_tag'].'<br>';
  63. echo 'Nazwa klanu: '.$wotStats['clan_name'].'<br>';
  64. echo 'Motto klanu: '.$wotStats['clan_motto'].'<br>';
  65. echo 'Dni w klanie: '.$wotStats['clan_days'].'<br>';
  66. echo 'Data zaciągu: '.$wotStats['clan_enrolled'].' - '.date("d.m.Y", $wotStats['clan_enrolled']).'<br>';
  67. echo '<br><br>';
  68. echo 'Bitew: '.$wotStats['battles'].'<br>';
  69. echo 'Zwycięstw: '.$wotStats['victories'].'<br>';
  70. echo 'Przegranych: '.$wotStats['defeats'].'<br>';
  71. echo 'Przetrwanych: '.$wotStats['survived'].'<br>';
  72.  
  73. ?>


Do momentu daty zaciągu ... ściąga mi dane idealnie ... później zaczynają się schody i nie wiem co jest nie tak.... proszę o podpowiedzi

informację pobierane są ze strony http://worldoftanks.eu/community/accounts/...74822-majes_pl/
tolomei
Witaj.

Problemem jest tutaj funkcja fixStat(), którą masz w liniach 49-52.
Gdy usuniesz jej wywołanie wszystko powinno być ok(u mnie jest).

Dwie dodatkowe uwagi.
Jak łączysz się za pomocą CURL to staraj się zamykać połączenie po pobraniu danych.
Dobrym zwyczajem jest inicjalizowanie tablic zanim zaczniesz wrzucać do nich dane.

Wyglądałoby to tak:
  1. <?php
  2.  
  3. include_once('simple_html_dom.php');
  4.  
  5. $wotStats = array();
  6.  
  7. //ŁĄCZENIE SIĘ ZE STRONĄ STATYSTYK
  8. $ch = curl_init("http://worldoftanks.eu/community/accounts/502674822-majes_pl/");
  9. curl_setopt($ch, CURLOPT_HEADER, 0);
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  11. $output= curl_exec($ch);
  12. curl_close($ch);
  13.  
  14. // dalsza część kodu...
  15.  


Pozdrawiam.
majesgrudziadz
Ok działa lecz mam jeszcze jeden problem ... mój dalszy kod to:

  1. <?php
  2. $wotStats['global_rating_val'] = $t->find('td.value',0)->plaintext;
  3. $wotStats['global_rating_place'] = $t->find('td.value',1)->plaintext;
  4. ?>


Kod html jest taki:

  1. <td class="right value">82</td>
  2. <td class="right value"> 36&nbsp;414</td>


coś mi nie pasuje z tym value i right value ... nie wyświetla mi wyniku ... mogę prosić o podpowiedź, pomoc ?



Już mam gotowe smile.gif poradziłem sobie odwoływałem się nie do tej tabelki smile.gif
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.