簡體   English   中英

使用php從json數據生成html表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM