json数据api进入php视图

时间:2017-01-22 18:04:00

标签: php html json

我的问题是我不知道如何在php中的表格中显示这些数据。当我尝试只传递一个变量$obj->message;时,我得到trying to get non object。有人能告诉我如何在html表中显示所有内容吗?

我的代码:

<?php
$url = "http://api.vateud.net/notams/EPDE.json";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
    echo curl_error($ch);
}
curl_close($ch);
$obj= json_decode($json);
print_r($obj);
?>

和结果:

Array
(
    [0] => stdClass Object
        (
            [raw] => B0552/17 NOTAMR B0372/17
Q) EPWW/QPIAU/I /NBO/A /000/999/5133N02154E005
A) EPDE B) 1701201151 C) 1701301430
E) INSTRUMENT APPROACH PROCEDURES:
- ILS OR LOC RWY30 (CAT A/B/C/D/E) NOT AVBL.

            [message] => INSTRUMENT APPROACH PROCEDURES:
- ILS OR LOC RWY30 (CAT A/B/C/D/E) NOT AVBL.

            [icao] => EPDE
        )

    [1] => stdClass Object
        (
            [raw] => B0551/17 NOTAMR B0371/17
Q) EPWW/QICAS/I /NBO/A /000/999/5133N02154E005
A) EPDE B) 1701201151 C) 1701301430
E) ILS AND DME IDN CH28X U/S.

            [message] => ILS AND DME IDN CH28X U/S.

            [icao] => EPDE
        )

    [2] => stdClass Object
        (
            [raw] => B0546/17 NOTAMR B7851/16
Q) EPWW/QSAAS/IV/BO /A /000/999/5133N02154E005
A) EPDE B) 1701200946 C) 1702222100
E) ATIS ON TEST. DO NOT USE.

            [message] => ATIS ON TEST. DO NOT USE.

            [icao] => EPDE
        )

    [3] => stdClass Object
        (
            [raw] => B7983/16 NOTAMN
Q) EPWW/QMNLT/IV/NBO/A /000/999/5133N02154E005
A) EPDE B) 1612230741 C) 1703230700
E) APN A - NOT AVBL WEST PART OF APRON, 
DIMENSIONS: LENGHT 362M, WIDTH 77M.

            [message] => APN A - NOT AVBL WEST PART OF APRON, 
DIMENSIONS: LENGHT 362M, WIDTH 77M.

            [icao] => EPDE
        )

    [4] => stdClass Object
        (
            [raw] => B7982/16 NOTAMR B6578/16
Q) EPWW/QFALT/IV/NBO/A /000/999/5133N02154E005
A) EPDE B) 1612230739 C) 1703230700
E) AERODROME AVBL FOR AKADEMICKI OSRODEK SZKOLENIA LOTNICZEGO AND
AEROKLUB ORLAT:
FRI 2100- MON 0430,
MON-FRI 2100-0430.

            [message] => AERODROME AVBL FOR AKADEMICKI OSRODEK SZKOLENIA LOTNICZEGO AND
AEROKLUB ORLAT:
FRI 2100- MON 0430,
MON-FRI 2100-0430.

            [icao] => EPDE
        )

    [5] => stdClass Object
        (
            [raw] => B6826/16 NOTAMR B4965/16
Q) EPWW/QMXLC/IV/M  /A /000/999/5133N02154E005
A) EPDE B) 1611160841 C) 1702152100
E) TWY A NEAR APRON A CLSD.

            [message] => TWY A NEAR APRON A CLSD.

            [icao] => EPDE
        )

    [6] => stdClass Object
        (
            [raw] => B6631/16 NOTAMR B6606/16
Q) EPWW/QFMLT/IV/BO /A /000/999/5133N02154E005
A) EPDE B) 1611070909 C) 1701310430
E) 1.MIL MET OFFICE HOURS OF SERVICES:
-  MON 0430 - FRI 2100.
-  THE WORKING DAYS BEFORE HOLIDAYS TILL 2100.
-  THE WORKING DAYS AFTER  HOLIDAYS FROM 0430.
-  SAT, SUN AND NOV 11, DEC 26, JAN 01, JAN 06 CLOSED.
2. MET INFORMATION ON HOLIDAYS AVBL PPR 24HR.
3. MET MEASUREMENT AND OBSERVATIONS ARE PERFORMED EVERY DAY
   FROM 0230 TILL 2100 EVERY 30 MINUTES. SOME OTHER TIME AVAILABLE
   METAR AUTO ONLY.

            [message] => 1.MIL MET OFFICE HOURS OF SERVICES:
-  MON 0430 - FRI 2100.
-  THE WORKING DAYS BEFORE HOLIDAYS TILL 2100.
-  THE WORKING DAYS AFTER  HOLIDAYS FROM 0430.
-  SAT, SUN AND NOV 11, DEC 26, JAN 01, JAN 06 CLOSED.
2. MET INFORMATION ON HOLIDAYS AVBL PPR 24HR.
3. MET MEASUREMENT AND OBSERVATIONS ARE PERFORMED EVERY DAY
   FROM 0230 TILL 2100 EVERY 30 MINUTES. SOME OTHER TIME AVAILABLE
   METAR AUTO ONLY.

            [icao] => EPDE
        )

    [7] => stdClass Object
        (
            [raw] => B6595/16 NOTAMR B5280/16
Q) EPWW/QFULT/IV/NBO/A /000/999/5133N02154E005
A) EPDE B) 1611040838 C) 1702032100
E) RESTRICTIONS FOR ACFT NOT BASED ON AERODROME:
FUEL AVBL PPR 72HR ONLY .

            [message] => RESTRICTIONS FOR ACFT NOT BASED ON AERODROME:
FUEL AVBL PPR 72HR ONLY .

            [icao] => EPDE
        )

)

1 个答案:

答案 0 :(得分:0)

  有人告诉我如何在html表中显示所有内容吗?

鉴于您使用$obj= json_decode($json);获取解码数组,解决方案将使用以下表结构和后续嵌套foreach循环,如下所示:

echo '<table>';
    echo '<tr>';
        echo '<th>raw</th>';
        echo '<th>message</th>';
        echo '<th>icao</th>';
    echo '</tr>';

    foreach($obj as $o){
        echo '<tr>';
        foreach($o as $value){
            echo '<td>' . $value . '</td>';
        }
        echo '</tr>';
    }
echo '</table>';