Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Tabela do tablicy
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam, czy jest możliwość zebrania informacji z tabeli do tablicy?

  1. <table class="DataTable">
  2. <tr>
  3. <td>Nr</td>
  4. <td>Nazwa 2</td>
  5. <td>Nazwa 3</td>
  6. <td>Nazwa 4</td>
  7. </tr>
  8. </thead>
  9. <tr>
  10. <td>1</td>
  11. <td>info 1</td>
  12. <td>info 1.1</td>
  13. <td>info 1.1.1</td>
  14. </tr>
  15. <tr>
  16. <td>2</td>
  17. <td>info 2</td>
  18. <td>info 2.2</td>
  19. <td>info 2.2.2</td>
  20. </tr>
  21.  
  22. </tbody>
  23. </table>


Czasami tych numerów może być 20... czy jest w php jakiś automat dodający je do tablicy? czy jest taka możliwość ?
Johnas
Problem w tym że jest tam wiele więcej tabel...

  1. <main>
  2. <div class="ContentWidth">
  3. <div id="Content">
  4.  
  5. <nav class="ContentTitle">
  6. <h1 class="Navigation"><a href="http://cssetti.pl/">Strona Główna</a> ? <a href="http://cssetti.pl/lista">Lista serwerów</a> ? <span><a href="http://cssetti.pl/serwer/80.72.34.123:27220">|VIP Kuleczky.pl [DD2||INFERNO||NUKE] @1shot1kill.pl - Szczegóły serwera</a></span></h1>
  7. </nav>
  8. <div class="Ribbon">
  9. |VIP Kuleczky.pl [DD2||INFERNO||NUKE] @1shot1kill.pl</div>
  10. <div class="MainContent">
  11. <h2>Szczegóły serwera:</h2>
  12. <table class="SummaryTable">
  13. <tr>
  14. <td>Nazwa serwera</td>
  15. <td colspan="2">|VIP Kuleczky.pl [DD2||INFERNO||NUKE] @1shot1kill.pl</td>
  16. </tr>
  17. <tr>
  18. <td>Serwer działa</td>
  19. <td>
  20. Tak,
  21. Brak problemów i ostrzeżeń </td>
  22. <td rowspan="8" id="MapThumbnail">
  23. <img src="//static.cssetti.pl/MapThumbnails/de_nuke.png">
  24. de_nuke
  25. </td>
  26. </tr>
  27. <tr>
  28. <td>Adres Ip:Port</td>
  29. <td>80.72.34.123:27220</td>
  30. </tr>
  31. <tr>
  32. <td>Mapa</td>
  33. <td>de_nuke</td>
  34. </tr>
  35. <tr>
  36. <td>Liczba graczy</td>
  37. <td>1 / 24</td>
  38. </tr>
  39. <tr>
  40. <td>Pozycja w rankingu</td>
  41. <td>7</td>
  42. </tr>
  43. <tr>
  44. <td>Liczba głosów</td>
  45. <td>323</td>
  46. </tr>
  47. <tr>
  48. <td>Ostatnia aktualizacja danych</td>
  49. <td>2015-10-02 11:29:26</td>
  50. </tr>
  51. <tr>
  52. <td>Następna aktualizacja danych</td>
  53. <td>2015-10-02 11:32:26</td>
  54. </tr>
  55. </table>
  56.  
  57. <h2>Gracze:</h2>
  58. <div id="CstrikeServerPlayersStats" style="height: 250px">
  59. </div>
  60. <table class="DataTable">
  61. <tr>
  62. <td>Pozycja</td>
  63. <td>Nick</td>
  64. <td>Liczba punktów</td>
  65. <td>Czas online</td>
  66. </tr>
  67. </thead>
  68. <tr>
  69. <td>1</td>
  70. <td>HLTV - 1s1k najlepszy ping w PL</td>
  71. <td>0</td>
  72. <td>31:25:47</td>
  73. </tr>
  74. </tbody>
  75. </table>
  76. </div>
  77. <aside class="MainContent">
  78. <h4>Zakup reklamy MasterBoost</h4>
  79. <p style="text-align: center"><a href="http://cssetti.pl/reklamy" style="text-decoration: underline; display: block">Na tej stronie dowiesz się, jak działa i dlaczego warto kupić reklamę MasterBoost.</a> Poniżej prezentowane są proponowane stawki i odpowiadające im pozycje.</p>
  80. <table class="DataTable">
  81. <tr>
  82. <td>Pozycja</td>
  83. <td>Stawka</td>
  84. </tr>
  85. </thead>
  86. <tr>
  87. <td>1</td>
  88. <td>42,50</td>
  89. </tr>
  90. <tr>
  91. <td>5</td>
  92. <td>29,11</td>
  93. </tr>
  94. <tr>
  95. <td>10</td>
  96. <td>12,12</td>
  97. </tr>
  98. <tr>
  99. <td>20</td>
  100. <td>8,51</td>
  101. </tr>
  102. <tr>
  103. <td>50</td>
  104. <td>5,52</td>
  105. </tr>
  106. <tr>
  107. <td>100</td>
  108. <td>3,72</td>
  109. </tr>
  110. <tr>
  111. <td>199</td>
  112. <td>2,00</td>
  113. </tr>
  114. </tbody>
  115.  
  116. <form action="" method="post" class="PostForm">
  117. <div class="PostFormField">
  118. <div class="PostFormFieldText">
  119. <div class="PostFormFieldLogo" style="background-color: #60AA24"><i class="fa fa-bolt"></i></div><input type="text" name="CssettiDirectAdDailyRate" value="Stawka dzienna (min: 2,00)" default-value="1">
  120. </div>
  121. </div>
  122. <div class="PostFormField">
  123. <div class="PostFormFieldText">
  124. <div class="PostFormFieldLogo" style="background-color: #60AA24"><i class="fa fa-money"></i></div><input type="text" name="CssettiDirectAdBudget" value="Budżet (min: 7 dni * stawka)" default-value="1">
  125. </div>
  126. </div>
  127. <button><i class="fa fa-shopping-cart"></i> Przejdź do zamówienia</button>
  128. </form>
  129.  
  130. <h4>Głosowanie na serwer</h4>
  131. <p style="text-align: center">Pozycja serwerów w rankingu CSSetti.pl ustawiana jest na podstawie ilości głosów z głosowania. Udostępnij link do tej strony, a głosujący podniosą ranking Twojego serwera.</p>
  132. <form action="" method="post" class="PostForm">
  133. <div class="PostFormField">
  134. <div class="g-recaptcha" data-sitekey="6Lev-QQTAAAAAPzuReFBfREVBGrFl-HcSpTUK_Rj"></div>
  135. </div>
  136. <input type="hidden" name="ServerVoteForm" value="">
  137. <button><i class="fa fa-check"></i> Zagłosuj</button>
  138. </form>
  139.  
  140. <div class="AsideStats">
  141. <h5>Liczba głosów serwera:</h5>
  142. <span>323</span>
  143.  
  144. <h5>Liczba głosów potrzebna do uzyskania wyższej pozycji:</h5>
  145. <span>79</span>
  146. </div>
  147.  
  148. <h4>Umieść link do głosowania na swojej stronie</h4>
  149.  
  150. <h5>Zwykły link:</h5>
  151. <pre class="CopyLink">http://cssetti.pl/serwer/80.72.34.123:27220</pre>
  152.  
  153.  
  154. <h5>Link HTML:</h5>
  155. <pre class="CopyLink"><a href="http://cssetti.pl/serwer/80.72.34.123:27220">Zagłosuj na |VIP Kuleczky.pl [DD2||INFERNO||NUKE] @1shot1kill.pl w serwisie CSSetti.pl</a></pre>
  156.  
  157. <h5>Link BBCode:</h5>
  158.  
  159. </aside>
  160. </div>
  161. </div>
  162. </main>
  163.  


Z tego kodu chcę wyciągnąć samych graczy online ... czyli ten fragment i dać go do tablicy

  1. <table class="DataTable">
  2. <tr>
  3. <td>Pozycja</td>
  4. <td>Nick</td>
  5. <td>Liczba punktów</td>
  6. <td>Czas online</td>
  7. </tr>
  8. </thead>
  9. <tr>
  10. <td>1</td>
  11. <td>HLTV - 1s1k najlepszy ping w PL</td>
  12. <td>0</td>
  13. <td>31:25:47</td>
  14. </tr>
  15. </tbody>
  16. </table>
Rysh
Głupie pytanie, a nie lepiej samemu odpytać serwery ile jest graczy?
Johnas
Fajnie, świetnie... a potrafisz tak bez RCON,a ?

mam takie Array ( [0] => [1] => [2] => [3] => Pozycja [4] => Nick [5] => Liczba [6] => punktów [7] => Czas [8] => online [9] => [10] => [11] => [12] => [13] => 1 [14] => HunteR [15] => 19 [16] => 00:17:11 [17] => [18] => [19] => 2 [20] => NexoN^^ [21] => 14 [22] => 00:20:26 [23] => [24] => [25] => 3 [26] => Game-Server [27] => 14 [28] => 00:26:43 [29] => [30] => [31] => 4 [32] => FastyOnFantasty [33] => 12 [34] => 00:47:23 [35] => [36] => [37] => 5 [38] => Ibrahim [39] => 9 [40] => 00:16:15 [41] => [42] => [43] => 6 [44] => Bandzior [45] => 4 [46] => 00:24:47 [47] => [48] => [49] => 7 [50] => A!uKaM [51] => `^ [52] => 0 [53] => 00:02:40 [54] => [55] => [56] => 8 [57] => ChmieLuK [58] => 0 [59] => 00:05:39 [60] => [61] => [62] => 9 [63] => HLTV [64] => - [65] => 1s1k [66] => najlepszy [67] => ping [68] => w [69] => PL [70] => 0 [71] => 35:37:07 [72] => [73] => [74] => )

i wszystko świetnie... dało by się co 6 ale jak ktoś użyje spacji w nicku to sie sypie... Pomoże ktoś?
markuz
Użyj phpQuery, simple_html_dom albo innej biblioteki do parasowania html`a, wtedy odnosisz się do tabeli np. w ten sposób :
  1. foreach($dom->find('table.DataTable tr') as $tr) {
  2. echo $tr->find('td', 0); // Pozycja
  3. echo $tr->find('td', 1); // Nick
  4. echo $tr->find('td', 2); // itp itd.
  5. }
Johnas
Dziękuje... chodziło mi właśnie jak to pobrać z tej konkretnej tabeli... Dzięki, jesteś moim bogiem biggrin.gif
$dom->find('table.DataTable tr')
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.