所以这是一个很长的解释。
我有一个反恐精英:源服务器,带有商店的游戏内插件。此存储将其数据保存在 MySQL 数据库中(对于此实例,名为“存储”)。商店在该数据库中跟踪玩家的钱(在表“用户”中的“信用”列上)。它基于“steam_id”存储客户端(每个客户端唯一)
“steam_id”的格式为(示例):STEAM_0:0:123456789 或 STEAM_0:1:12345789。
我的页面显示了数据库中排名前 1000 的用户(按信用排序)。
我的问题:我需要将这些丑陋的 steam_id 转换为实际名称。
我现在在哪里:
根据 API 文档,我在查询 API 时必须使用“社区 ID”。如果我想获得多个用户,我可以使用逗号分隔 GET 字符串中的社区 ID。
(http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=APIKEY&steamids= 76561197960435530,76561197960435531 &format=json)
我有一个函数可以将 steam_id 转换为 API 可接受的 ID。
function SteamID2CommunityID($steam_id){
$parts = explode(':', str_replace('STEAM_', '' ,$id));
$communityID = bcadd(bcadd('76561197960265728', $parts['1']), bcmul($parts['2'], '2'));
return $communityID;
}
有了这个,我可以用这个来制作我的逗号分隔的社区 ID 列表:
while ($row = $mysqli->fetch_assoc($request)) {
$ids .= ',' . SteamID2CommunityID($row['steamid']) . ',';
}
现在对于棘手的部分,所有这些值都返回到一个 JSON 数组中。我需要添加一些东西,所以当我显示我的数据时,我可以将“steam_id”直接转换为“名称”(使用现有数组)。
输出示例(删除了大多数键和值以使其可读)
Array (
[response] => Array
(
[players] => Array
(
[0] => Array
(
[steamid] => 76561198010207577
[personaname] => [rGA] Stainbow
)
[1] => Array
(
[steamid] => 76561197966653036
[personaname] => |K}{R|Mastarious(MNBH)
)
)
)
)
再说一次,我将如何直接从“steam_id”变成一个名字?
感谢任何可以提供代码和/或建议的人!