我是PHP的初学者,并且正在使用Steamapi。我发现它有点发现,并希望继续在我的网站中导入我的当前游戏。当我使用Steamapi时,我没有任何问题,并且我没有在游戏中。当我在游戏中时,代码正常运行(这就是我认为发生的事情)。
更多地解释我:当我参加游戏时: echo $json["response"]["players"][0]["gameextrainfo"];
->这给了我我现在所在的游戏的名称。
当我不在游戏中而我使用时: echo $json["response"]["players"][0]["gameextrainfo"];
->我收到此通知:
Undefined index: gameextrainfo in C:xampphtdocssteamsteamapi.php on line 10
所以我认为我遇到的问题是,当我不在游戏中时,蒸汽什么都没有返回?
有人可以帮我吗?
就像我说我只是PHP的初学者,所以如果这是一个愚蠢的问题,对不起。
未定义的索引表示$json['response']['players'][0]
处的数组不包含键gameextrainfo
。
这是有道理的,您没有玩游戏,因此没有提供额外的信息。
您可以使用
检查某个键是否存在 array_key_exists("gameextrainfo", $json["response"]["players"][0])
php docs
或
isset($json["response"]["players"][0]["gameextrainfo"])
php docs
在这两种情况下,都认为实际上有第一个玩家。您应该检查蒸汽-API以查看响应中始终传递/始终存在的字段。
Steam API文档在:https://developer.valvesoftware.com/wiki/steam_web_api
在获取播放器摘要下返回的一个非常快速的搜索:
gamextrainfo如果用户当前在游戏中,这将是名称 他们正在玩游戏。这可能是非台游戏的名称 快捷方式。
API文档在您刚开始时很难解析,但通常这是获得信息的最佳场所。希望会有所帮助。
- 编辑 - 如果您不在游戏中,则不会返回信息,以解决此信息,请在尝试打印之前添加数据检查。
// Set variable for individual player
$playerInfo = $json['response']['players'][0];
// Test if extra info exists in player info array
if (array_key_exists('gameextrainfo', $playerInfo)
&& !empty($playerInfo['gameextrainfo'])
) {
// echo info string
echo $playerInfo['gameextrainfo];
}