用PHP解析国家气象服务JSON

时间:2016-04-01 12:27:02

标签: php json

我已经能够解析实际的.json文件,但这个链接似乎无法解析。

http://forecast.weather.gov/MapClick.php?lat=36.321903791028205&lon=-96.80576767853478&FcstType=json

我在想,因为链接本身不是.json文件,而是json格式的链接......我在尝试解析它时遇到问题......即使我开始使用...

    <?php

    $url = "http://forecast.weather.gov/MapClick.php?lat=36.321903791028205&lon=-96.80576767853478&FcstType=json";
    $json = file_get_contents($url);
    $json_a = json_decode($json,true);


    // <---------- Current Conditions ----------> //
        //Display Location
        $location_full = $json_a['location']['areaDescription'];

?>

在我的页面上,我想显示我的信息:

<?php    
    require 'req/weatherinfo.php';  
?>
<!DOCTYPE html>
<html>
    <head>
        <title>PawneeTV Weather</title> 
   </head>

    <body>  
    <?php echo $location_full; ?><p>    
    </body>
</html>

为什么会产生空白页?我现在已经清除了错误,它只是没有显示任何内容。我已使用.json文件源多次完成,它可以使用此源http://api.wunderground.com/api/43279e1c0b065c2e/forecast/q/OK/Pawnee.json,但不能使用以= json而不是.json结尾的链接

1 个答案:

答案 0 :(得分:-1)

在这种情况下,您无法使用file_get_contents。有关这方面的更多解释,请阅读here。 这段代码正在运行:

<?php

    $url = "http://forecast.weather.gov/MapClick.php?lat=36.321903791028205&lon=-96.80576767853478&FcstType=json";

    // create curl resource
    $ch = curl_init();

    // set url
    curl_setopt($ch, CURLOPT_URL, $url);

    //return the transfer as a string
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

    // $output contains the output string
    $output = curl_exec($ch);

    // close curl resource to free up system resources
    curl_close($ch); 

    $json_a = json_decode($output,true);

// <---------- Current Conditions ----------> //
        //Display Location
        $location_full = $json_a['location']['areaDescription'];