0

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

它的作用是,用户使用 $arg 定义命令“天气”,其中 $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"]  . "%"); 
}
4

1 回答 1

2

响应如下所示:

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

返回的数据在数据属性中具有位置属性,因此您必须引用。它作为

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

$weather["data"]["temperature"];
于 2013-07-31T23:00:56.337 回答