如何使用PHP将JSON解析为html表格? [英] How can I parse JSON into a html table using PHP?

查看:85
本文介绍了如何使用PHP将JSON解析为html表格?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我必须在我的网站上找到一张桌子。并且必须从
获取该表的数据 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><<< ; /脚本>
< / 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)){
//打开表格
echo< table>;

//遍历数组
foreach($ data as $ stand){

//输出一行
echo< tr> ;
echo< td> $ afko< / td>;
echo< td> $ positie< / td>;
回声< / tr>;
}

//关闭表格
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);

结果:

 < 

[stand] =>数组

[0] => stdClass对象

[ ab> => Risne Stars HS 1
[ID] => 2091
[status] => Actief
[gespeeld] => 3
[百分比] = > 100.0
[punten] => 6
[tegenscore] => 149
[eigenscore] => 191
=> 2014-10- 05
[saldo] => 42
[team] => Risne Stars Heren 1
[positie] => 1


[1] => stdClass对象

[afko] => DBV Arriba HS 2
[ID] => 1813
[status] =&g吨; Actief
[gespeeld] => 2
[百分比] => 0.0
[punten] => 0
[tegenscore] => 116
[eigenscore] => 102
[datum] => 2014-10-05
[saldo] => -14
[team] => D.B.V. Arriba Heren 2
[positie] => 10


[2] => stdClass Object

[afko] => The Valley Bucketeers HS 2
[ID] => 2430
[status] => Actief
[gespeeld ] => 2
[百分比] => 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
[百分比] => 100.0
[punten] => 4
[tegenscore] => 79
[eigenscore] => 161 $ b $ 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
[百分比] => 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
[百分比] => 100.0
[punten] => 2
[tegenscore] => 36
[eigenscore] => 64 $ b $ 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
[百分比] => 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
[百分比] => 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
[百分比] => 33.3
[punten] => 2
[tegenscore] => 180
[eigenscore] => 195 $ b $ 2014-10-05
[saldo] => 15
[team] => Amical Heren 2
[positie] => 7


[9] => stdClass Object

[afko] => SVZW HS 2
[ID] => 5526
[status] => Actief
[gespeeld] = > 3
[百分比] => 33.3
[punten] => 2
[tegenscore] => 174
[eigenscore] => 151 $ b $ 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
[百分比] => 33.3
[punten] => 2
[tegenscore] => 196
[eigenscore] => 151
$ datum => 2014-10-05
[saldo] => -45
[team] => Twente Buzzards Heren 3
[positie] => 9




[nummer] => OHS2C
[版本] => 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,而不是标量值或数组。



所以试试这段代码: - $ /
$ b $ pre > <?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)){
//打开表格
echo< table>;

//遍历数组
foreach($ data->表示为$ idx => $ stand){

//输出一行
回显< tr>;
echo< td> $ stand-> afko< / td>;
echo< td> $ stand-> positie< / td>;
回声< / tr>;
}

//关闭表格
echo< / table>;
}
?>


I have to get a table in my website. And have to get the data for this table from "http://west.basketball.nl/db/json/stand.pl?szn_Naam=2014-2015&cmp_ID=373" I've tried a lot of thing but nothing works....

 <!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>

解决方案

Ok first thing to do when getting data from an external source is to understand what is being returned.

So do

<?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);

Result:

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] => D.B.V. 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] => D.B.V. 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] => S.V.Z.W. HS 2
                    [ID] => 5526
                    [status] => Actief
                    [gespeeld] => 3
                    [percentage] => 33.3
                    [punten] => 2
                    [tegenscore] => 174
                    [eigenscore] => 151
                    [datum] => 2014-10-05
                    [saldo] => -23
                    [team] => S.V.Z.W. 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
)

So now you know you are dealing with an OBJECT and not scalar values or an array.

So try this code:-

<?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>";
    }
?>

这篇关于如何使用PHP将JSON解析为html表格?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆