したがって、これは非常に長い説明です。
ストア用のゲーム内プラグインを備えた Counter-Strike: Source サーバーがあります。このストアは、そのデータを MySQL データベースに保存します (このインスタンスでは、'store' という名前です)。ストアは、そのデータベース (テーブル「users」の列「credits」) でプレーヤーのお金を追跡します。「steam_id」(すべてのクライアントに固有)に基づいてクライアントを保存します
「steam_id」の形式は (例): STEAM_0:0:123456789 OR 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']) . ',';
}
ここで注意が必要なのは、これらすべての値が 1 つの 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」から名前に直接移行するにはどうすればよいでしょうか?
コードや提案を提供できる人に感謝します!