未定义的索引天气

时间:2013-07-31 22:58:50

标签: php json

所以我制作了这个脚本,基本上就是一个命令。

它的作用是,用户用$ arg定义命令“weather”,其中$ arg就是所说的。然后对得到的json进行解码,然后从json中只发送两个包。但是它说“位置”和“温度”是不确定的。

有人可以帮我解决这个问题吗?数据包获取正确发送但它不会显示数据包发送时的位置或温度。数据包sm =发送消息。

这是代码

if($cmd == 'weather'){
$file = file_get_contents('http://weather3.pricop.info/api.php?city=' . $arg);
$weather = json_decode($file, true);
$user->sendPacket("%xt%sm%-1%0%" . " Temperature for " . $weather["location"] . "%" . " will be " . $weather["temperature"]  . "%"); 
}

1 个答案:

答案 0 :(得分:2)

回复如下:

{"apiVersion":"1.0", "data":{ "location":"Pascagoula, MS", "temperature":"79", "skytext":"Mostly Cloudy", "humidity":"84", "wind":"6", "date":"2013-07-31", "day":"Wednesday" } }

返回的数据在data属性中包含location属性,因此您必须引用。它是

$weather["data"]["location"];

$weather["data"]["temperature"];