[英]generate html table from json data using php
我將此作為輸入數據,如何使用鍵作為標題行將其轉換為html表,然后循環其余行的值?
我輸入的json數據可以從https://bpaste.net/show/c01e97e208de下載
Array
(
[0] => Array
(
[DIR] => IN
[RULESET] => BLACKLIST
[IN] => eth0.2
[OUT] => br-lan
[MAC] => 10:fe:ed:ff:ea:4c:00:01:5c:98:96:46:08:00:45:00:00:28
[SRC] => 185.56.82.18
[DST] => 192.168.2.163
[LEN] => 40
[TOS] => 0x00
[PREC] => 0x00
[TTL] => 242
[ID] => 1061
[PROTO] => TCP
[SPT] => 57547
[DPT] => 445
[WINDOW] => 1024
[RES] => 0x00
[FLAG] => SYN
[URGP] => 0
)
[1] => Array
(
[DIR] => IN
[RULESET] => CUSTOMLIST
[IN] => eth0.2
[OUT] => br-lan
[MAC] => 10:fe:ed:ff:ea:4c:00:01:5c:98:96:46:08:00:45:00:00:28
[SRC] => 191.101.167.246
[DST] => 192.168.2.163
[LEN] => 40
[TOS] => 0x00
[PREC] => 0x00
[TTL] => 239
[ID] => 6538
[PROTO] => TCP
[SPT] => 55876
[DPT] => 6666
[WINDOW] => 1024
[RES] => 0x00
[FLAG] => SYN
[URGP] => 0
)
[2] => Array
(
[DIR] => IN
[RULESET] => BLACKLIST
[IN] => eth0.2
[OUT] => br-lan
[MAC] => 10:fe:ed:ff:ea:4c:00:01:5c:98:96:46:08:00:45:00:00:28
[SRC] => 121.113.201.196
[DST] => 192.168.2.10
[LEN] => 40
[TOS] => 0x00
[PREC] => 0x00
[TTL] => 49
[ID] => 34152
[PROTO] => TCP
[SPT] => 20281
[DPT] => 23
[WINDOW] => 47916
[RES] => 0x00
[FLAG] => SYN
[URGP] => 0
)
[3] => Array
(
[DIR] => IN
[RULESET] => BLACKLIST
[IN] => eth0.2
[OUT] => br-lan
[MAC] => 10:fe:ed:ff:ea:4c:00:01:5c:98:96:46:08:00:45:00:00:28
[SRC] => 209.126.136.4
[DST] => 192.168.2.163
[LEN] => 40
[TOS] => 0x00
[PREC] => 0x00
[TTL] => 239
[ID] => 54321
[PROTO] => TCP
[SPT] => 50352
[DPT] => 21
[WINDOW] => 65535
[RES] => 0x00
[FLAG] => SYN
[URGP] => 0
)
到目前為止我的PHP是...
<?php
$json=file_get_contents("my_url/firelog.json");
$data=json_decode($json,true);
//print_r($data);
//echo gettype($data), "\n";
echo "<table><tbody>";
if (is_array($data)) {
foreach($data as $key){
if (is_array($key)) {
foreach($key as $k => $v) {
echo "<tr>";
echo "</tr>";
}
}
}
}
$echo "</tbody></table>";
?>
如果每個記錄都具有相同的鍵,則只需獲取第一條記錄中的所有鍵,然后遍歷每個對象以查找所有值,例如:
if (is_array($data)) {
$first = true;
foreach($data as $key){
if (is_array($key)) {
if ($first) {
echo '<tr>';
$first = false;
foreach($key as $k => $v) {
echo '<th>'.$k.'</th>';
}
echo '</tr>';
}
echo "<tr>";
foreach($key as $k => $v) {
echo "<td>".$v."</td>";
}
echo "</tr>";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.