所以我在这里有一个JSON输出https://squad-servers.com/api/?object=servers&element=detail&key=fupxq9hl1vkxb4yxhkggada7e0jz8p6w1
我想要做的是将其放入HTML表格中以创建我自己的状态页面,这就是我使用它的地方。
<?php
$json=file_get_contents("https://squad-servers.com/api/?object=servers&element=detail&key=fupxq9hl1vkxb4yxhkggada7e0jz8p6w1");
$data = json_decode($json);
print_r($data);
?>
stdClass Object
(
[id] => 2272
[name] => [ZXD] Zulu X-Ray Delta EU/UK #2
[address] => 164.132.202.16
[port] => 7797
[private] => 0
[password] => 0
[query_port] => 27175
[location] => United Kingdom
[hostname] => Zulu X-Ray Delta EU/UK #2
[map] => Kokan AAS v1
[is_online] => 0
[players] => 0
[maxplayers] => 72
[version] => a-8.8.116.11628
[platform] => windows
[uptime] => 97
[score] => 4
[rank] => 81
[votes] => 0
[favorited] => 0
[comments] => 0
[url] => https://squad-servers.com/server/2272/
[last_check] => December 7th, 2016 08:50 AM EST
[last_online] => December 7th, 2016 07:25 AM EST
)
但是我怎样才能把它变成一个表格,所以我可以回显/打印出数组的每个部分?
非常感谢,
答案 0 :(得分:1)
$tbl = "<table><tr><th>".implode('</th><th>',array_keys((array)$data))."</th></tr>";
$tbl .= "<tr><td>".implode('</td><td>',(array)$data)."</td></tr></table>";
print $tbl;
......在前往罗马的路上。
$head=array();
$body=array();
foreach($data as $k=>$v){
$head[]="<th>$k</th>";
$body[]="<td>$v</td>";
}
print "<table><tr>".implode('',$head)."</tr><tr>".implode('',$body)."</tr></table>";
......另一种方式。
(每个使用过的函数都可以在php.net上找到)
这只适用于您的示例。并非每个json输出都可以轻松打印到html表中。
答案 1 :(得分:0)
您可以使用foreach打印每个值:
foreach ($data as $key => $value) {
echo $value;
}
答案 2 :(得分:0)
您只需拨打print_r($data->name);
echo $data->name
即可拨打当前的api电话。
如果您有多个结果:
<table>
<?php foreach ($object as $value) {
echo '<tr>';
echo '<td>'.$value->name.'</td>';
echo '<td>'.$value->address.'</td>';
echo '<td>'.$value->hostname.'</td>';
echo '<td>'.$value->uptime.'</td>';
echo '</tr>';
}
}
?>
</table>
答案 3 :(得分:0)
json_decode有一个可选的第二个参数,用于确定您是否要关联array
。默认情况下,此参数为false
,因此您将获得一个更难处理的标准对象。相反,请确保您有一个关联的数组:
$data = json_decode($json, true);
foreach ($data as $key => $value) {
//Do something with $key and $value
}