Как я могу разобрать JSON в html-таблицу с помощью PHP?

Я должен получить таблицу на своем веб-сайте. И нужно получить данные для этой таблицы с " http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373 " Я пробовал много чего, но ничего не работает. ..

<!DOCTYPE html> <html> <head> <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> </head> <body> <?php $json=file_get_contents("http://west.basketball.nl/db/json /stand.pl?szn_Naam=2014-2015&cmp_ID=373"); $data = json_decode($json); if (count($data)) { // Open the table echo "<table>"; // Cycle through the array foreach ($data as $stand) { // Output a row echo "<tr>"; echo "<td>$afko</td>"; echo "<td>$positie</td>"; echo "</tr>"; } // Close the table echo "</table>"; } ?> </body> </html> 

Хорошо, прежде всего, чтобы получить данные от внешнего источника, чтобы понять, что возвращается.

Ну действуй

 <?php $json=file_get_contents("http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373"); $data = json_decode($json); print_r($data); 

Результат:

 stdClass Object ( [stand] => Array ( [0] => stdClass Object ( [afko] => Risne Stars HS 1 [ID] => 2091 [status] => Actief [gespeeld] => 3 [percentage] => 100.0 [punten] => 6 [tegenscore] => 149 [eigenscore] => 191 [datum] => 2014-10-05 [saldo] => 42 [team] => Risne Stars Heren 1 [positie] => 1 ) [1] => stdClass Object ( [afko] => DBV Arriba HS 2 [ID] => 1813 [status] => Actief [gespeeld] => 2 [percentage] => 0.0 [punten] => 0 [tegenscore] => 116 [eigenscore] => 102 [datum] => 2014-10-05 [saldo] => -14 [team] => DBV Arriba Heren 2 [positie] => 10 ) [2] => stdClass Object ( [afko] => The Valley Bucketeers HS 2 [ID] => 2430 [status] => Actief [gespeeld] => 2 [percentage] => 0.0 [punten] => 0 [tegenscore] => 177 [eigenscore] => 70 [datum] => 2014-10-05 [saldo] => -107 [team] => The Valley Bucketeers Heren 2 [positie] => 11 ) [3] => stdClass Object ( [afko] => Uitsmijters HS 2 [ID] => 2143 [status] => Actief [gespeeld] => 2 [percentage] => 100.0 [punten] => 4 [tegenscore] => 79 [eigenscore] => 161 [datum] => 2014-10-05 [saldo] => 82 [team] => Uitsmijters Heren 2 [positie] => 2 ) [4] => stdClass Object ( [afko] => Picker Reds HS 1 [ID] => 2056 [status] => Actief [gespeeld] => 3 [percentage] => 66.7 [punten] => 4 [tegenscore] => 193 [eigenscore] => 184 [datum] => 2014-10-05 [saldo] => -9 [team] => Picker Reds Heren 1 [positie] => 3 ) [5] => stdClass Object ( [afko] => Peatminers HS 2 [ID] => 6247 [status] => Actief [gespeeld] => 1 [percentage] => 100.0 [punten] => 2 [tegenscore] => 36 [eigenscore] => 64 [datum] => 2014-10-05 [saldo] => 28 [team] => Peatminers Heren 2 [positie] => 4 ) [6] => stdClass Object ( [afko] => Jolly Jumpers HS 1 [ID] => 1994 [status] => Actief [gespeeld] => 2 [percentage] => 50.0 [punten] => 2 [tegenscore] => 103 [eigenscore] => 119 [datum] => 2014-10-05 [saldo] => 16 [team] => Jolly Jumpers Heren 1 [positie] => 5 ) [7] => stdClass Object ( [afko] => TONEGO '65 HS 2 [ID] => 2120 [status] => Actief [gespeeld] => 2 [percentage] => 50.0 [punten] => 2 [tegenscore] => 107 [eigenscore] => 122 [datum] => 2014-10-05 [saldo] => 15 [team] => TONEGO '65 Heren 2 [positie] => 6 ) [8] => stdClass Object ( [afko] => Amical HS 2 [ID] => 1791 [status] => Actief [gespeeld] => 3 [percentage] => 33.3 [punten] => 2 [tegenscore] => 180 [eigenscore] => 195 [datum] => 2014-10-05 [saldo] => 15 [team] => Amical Heren 2 [positie] => 7 ) [9] => stdClass Object ( [afko] => SVZW HS 2 [ID] => 5526 [status] => Actief [gespeeld] => 3 [percentage] => 33.3 [punten] => 2 [tegenscore] => 174 [eigenscore] => 151 [datum] => 2014-10-05 [saldo] => -23 [team] => SVZW Heren 2 [positie] => 8 ) [10] => stdClass Object ( [afko] => Twente Buzzards HS 3 [ID] => 2294 [status] => Actief [gespeeld] => 3 [percentage] => 33.3 [punten] => 2 [tegenscore] => 196 [eigenscore] => 151 [datum] => 2014-10-05 [saldo] => -45 [team] => Twente Buzzards Heren 3 [positie] => 9 ) ) [nummer] => OHS2C [version] => 1.0 [aantal_teams] => 11 [id] => 373 [seizoen] => 2014-2015 [naam] => Oost Afdeling Heren Senioren 2e klasse C [gewijzigd] => 2014-10-05 18:34:25 ) 

Итак, теперь вы знаете, что имеете дело с OBJECT, а не с скалярными значениями или массивом.

Попробуйте этот код: –

 <?php $json=file_get_contents("http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373"); $data = json_decode($json); if (count($data->stand)) { // Open the table echo "<table>"; // Cycle through the array foreach ($data->stand as $idx => $stand) { // Output a row echo "<tr>"; echo "<td>$stand->afko</td>"; echo "<td>$stand->positie</td>"; echo "</tr>"; } // Close the table echo "</table>"; } ?> 

Если вы хотите рекурсивный путь:

 public static function jsonToDebug($jsonText = '') { $arr = json_decode($jsonText, true); $html = ""; if ($arr && is_array($arr)) { $html .= self::_arrayToHtmlTableRecursive($arr); } return $html; } private static function _arrayToHtmlTableRecursive($arr) { $str = "<table><tbody>"; foreach ($arr as $key => $val) { $str .= "<tr>"; $str .= "<td>$key</td>"; $str .= "<td>"; if (is_array($val)) { if (!empty($val)) { $str .= self::_arrayToHtmlTableRecursive($val); } } else { $str .= "<strong>$val</strong>"; } $str .= "</td></tr>"; } $str .= "</tbody></table>"; return $str; } 

Затем вызовите echo YourClass::jsonToDebug($jsonText) ;

Мой тест на http://sandbox.onlinephpfunctions.com/

Я думаю, проблема $afko с переменными, которые вы используете – $afko и $positie . Пожалуйста, используйте приведенный ниже код –

 // Cycle through the array foreach ($data as $stand) { // Output a row echo "<tr>"; echo "<td> . $stand['afko'] . </td>"; echo "<td> . $stand['positie'] . </td>"; echo "</tr>"; } 

Почему бы не попробовать:

 $data = json_decode($json, true);