2017-05-06 29 views
-2

我正在尝试将JSON结果的内容导入到php变量中。我使用的代码是:将json解码为php变量

$request = json_decode(file_get_contents("https://api.sunrise-sunset.org/json?lat=51.507351&lng=-0.127758&date=today"), true); 

的JSON调用的输出是这样的:

array(2) { 
    ["results"]=> array(10) { 
     ["sunrise"]=> string(10) "4:21:35 AM" 
     ["sunset"]=> string(10) "7:32:34 PM" 
     ["solar_noon"]=> string(11) "11:57:04 AM" 
     ["day_length"]=> string(8) "15:10:59" 
     ["civil_twilight_begin"]=> string(10) "3:42:08 AM" 
     ["civil_twilight_end"]=> string(10) "8:12:01 PM" 
     ["nautical_twilight_begin"]=> string(10) "2:49:55 AM" 
     ["nautical_twilight_end"]=> string(10) "9:04:14 PM" 
     ["astronomical_twilight_begin"]=> string(10) "1:41:12 AM" 
     ["astronomical_twilight_end"]=> string(11) "10:12:57 PM" 
     } 
     ["status"]=> string(2) "OK" 
} 

我怎样才能获得“日出”时间和“日落”时间到PHP变量$ SunRiseTime和$ SunSetTime;

非常感谢您的时间。

+0

'回波json_decode($ JSON,真) “的结果”] [ “日出”];'和'回波json_decode($ JSON,真) [“results”] [“sunset”];' –

+0

http://stackoverflow.com/q/43673876/6521116 –

回答

1

简单和直接。

<?php 
ini_set('display_errors', 1); 

$json = file_get_contents("https://api.sunrise-sunset.org/json?lat=51.507351&lng=-0.127758&date=today"); 
$array=json_decode($json,true); 

echo $SunRiseTime=$array["results"]["sunrise"]; 
echo $SunSetTime=$array["results"]["sunset"]; 

输出:4:21:35 AM7:32:34 PM

+0

完美,这就是我所需要的。非常感谢所有答复。 – DCJones

+0

@DCJones欢迎... :) –

+0

我会尽快让系统让我,谢谢。 – DCJones

0

使用$$定义php动态变量。如果你想静态定义一个变量,直接赋值给它。

动态,

$name = 'SunRise'; 
$$name = $array["results"]["sunrise"]; 

静态名称,

$SunRise = $array["results"]["sunrise"]; 
+2

为什么不直接使用'$ SunRise'? – inarilo

+0

因为这可能是动态的。如果这是静态的,你是对的。 –

+1

似乎是静态的 – inarilo

0
$SunRiseTime = $request['results']['sunrise']; 
$SunSetTime = $request['results']['sunset'];