이것은 매우 긴 설명입니다.밸브/스팀 API를 사용하여 여러 ID 변환
나는 스토어를위한 인게임 플러그인이있는 Counter-Strike : Source 서버를 가지고 있습니다. 이 저장소는 MySQL 데이터베이스 (이 인스턴스의 경우 'store')에 데이터를 저장합니다. 상점은 해당 데이터베이스에서 플레이어의 돈을 추적합니다 (테이블 '사용자'의 열 '크레딧'에 있음). '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 = & & 7656119796043553076561197960435531 형식 = JSON)
I는 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'를 'name'(기존 배열 사용)으로 직접 변환 할 수 있습니다.
출력의 예 그래서 다시
Array (
[response] => Array
(
[players] => Array
(
[0] => Array
(
[steamid] => 76561198010207577
[personaname] => [rGA] Stainbow
)
[1] => Array
(
[steamid] => 76561197966653036
[personaname] => |K}{R|Mastarious(MNBH)
)
)
)
)
(대부분의 키 & 값이 읽을 수 있도록 제거), 어떻게이 이름을 'steam_id'에서 직진 가겠어요?
코드 및/또는 제안을 제공 할 수있는 사람에게 감사드립니다!