在 PHP 中从 JSON 获取单个项目
Get a single item from JSON in PHP
我正在搜索堆栈溢出,但没有找到我想要做的事情...
所以这里是问题:
如何 RETURN 仅使用蒸汽?
代码:
<?php
// define variables and set to empty values
$steamID = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$steamID = test_input($_POST["steamID"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$keyApp = '5DE00EE4D07BA728EDAB0B3C2961AA6B';
$api = "";
$json_data = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$keyApp&steamids=$steamID");
$array = json_decode($json_data, true);
var_dump($array);
?>
var_dump:
array(1) {
["response"]=>
array(1) {
["players"]=>
array(1) {
[0]=>
array(19) {
["steamid"]=>
string(17) "76561198058543756"
["communityvisibilitystate"]=>
int(3)
["profilestate"]=>
int(1)
["personaname"]=>
string(12) ""Cientistas""
["commentpermission"]=>
int(1)
["profileurl"]=>
string(37) "https://steamcommunity.com/id/rhatto/"
["avatar"]=>
string(116) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba.jpg"
["avatarmedium"]=>
string(123) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba_medium.jpg"
["avatarfull"]=>
string(121) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba_full.jpg"
["avatarhash"]=>
string(40) "c9442f1ea597a7685f8e50f2f7c922321beb4eba"
["lastlogoff"]=>
int(1593317334)
["personastate"]=>
int(0)
["realname"]=>
string(44) "por erro em estudo sobre a hidroxicloroquina"
["primaryclanid"]=>
string(18) "103582791454640235"
["timecreated"]=>
int(1328817888)
["personastateflags"]=>
int(0)
["loccountrycode"]=>
string(2) "CN"
["locstatecode"]=>
string(2) "32"
["loccityid"]=>
int(9982)
}
}
}
}
如何从 $array 中提取 steamid?
已经试过这个链接
https://www.codewall.co.uk/how-to-read-json-file-using-php-examples/
https://www.php.net/manual/pt_BR/function.json-decode.php
通过访问 steamid
的正确路径,唯一的问题是,显然您可能在玩家数组中有多个项目。所以你可能需要某种循环。
可能是这样的:
$players = $array['response']['players'];
foreach($players as $player) {
echo $player['steamid'] . '<br>';
}
或者如果你的玩家数组中总是有 1 个玩家,你也可以这样做(快速而肮脏):
echo $array['response']['players'][0]['steamid'];
$steamID = $array['response']['players'][0]['steamid'];
我正在搜索堆栈溢出,但没有找到我想要做的事情... 所以这里是问题: 如何 RETURN 仅使用蒸汽?
代码:
<?php
// define variables and set to empty values
$steamID = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$steamID = test_input($_POST["steamID"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$keyApp = '5DE00EE4D07BA728EDAB0B3C2961AA6B';
$api = "";
$json_data = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$keyApp&steamids=$steamID");
$array = json_decode($json_data, true);
var_dump($array);
?>
var_dump:
array(1) {
["response"]=>
array(1) {
["players"]=>
array(1) {
[0]=>
array(19) {
["steamid"]=>
string(17) "76561198058543756"
["communityvisibilitystate"]=>
int(3)
["profilestate"]=>
int(1)
["personaname"]=>
string(12) ""Cientistas""
["commentpermission"]=>
int(1)
["profileurl"]=>
string(37) "https://steamcommunity.com/id/rhatto/"
["avatar"]=>
string(116) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba.jpg"
["avatarmedium"]=>
string(123) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba_medium.jpg"
["avatarfull"]=>
string(121) "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/c9/c9442f1ea597a7685f8e50f2f7c922321beb4eba_full.jpg"
["avatarhash"]=>
string(40) "c9442f1ea597a7685f8e50f2f7c922321beb4eba"
["lastlogoff"]=>
int(1593317334)
["personastate"]=>
int(0)
["realname"]=>
string(44) "por erro em estudo sobre a hidroxicloroquina"
["primaryclanid"]=>
string(18) "103582791454640235"
["timecreated"]=>
int(1328817888)
["personastateflags"]=>
int(0)
["loccountrycode"]=>
string(2) "CN"
["locstatecode"]=>
string(2) "32"
["loccityid"]=>
int(9982)
}
}
}
}
如何从 $array 中提取 steamid? 已经试过这个链接 https://www.codewall.co.uk/how-to-read-json-file-using-php-examples/ https://www.php.net/manual/pt_BR/function.json-decode.php
通过访问 steamid
的正确路径,唯一的问题是,显然您可能在玩家数组中有多个项目。所以你可能需要某种循环。
可能是这样的:
$players = $array['response']['players'];
foreach($players as $player) {
echo $player['steamid'] . '<br>';
}
或者如果你的玩家数组中总是有 1 个玩家,你也可以这样做(快速而肮脏):
echo $array['response']['players'][0]['steamid'];
$steamID = $array['response']['players'][0]['steamid'];