【问题标题】:Get a single item from JSON in PHP [duplicate]从PHP中的JSON获取单个项目[重复]
【发布时间】:2020-06-28 18:50:19
【问题描述】:

我已经搜索堆栈溢出,但没有找到我想要做的事情...... 所以这是一个问题: 如何仅返回 STEAMID?

代码:

<?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

【问题讨论】:

  • 如果只有1个id,$array["response"]["players"][0]["steamid"]
  • 不确定$keyApp 的值是否重要,或者在您发布问题时是否应该将其从代码中删除。
  • 你必须停止使用地狱函数test_input()。这会给你以后带来很多问题。

标签: php json steam-web-api


【解决方案1】:

通过访问steamid 的正确路径,唯一的事情是,显然您可能在玩家数组中有多个项目。所以你可能需要某种循环。

可能是这样的:

$players = $array['response']['players'];

foreach($players as $player) {
  echo $player['steamid'] . '<br>';
}

或者,如果您的播放器数组中总是有 1 个播放器,您也可以这样做(又快又脏):

echo $array['response']['players'][0]['steamid'];

【讨论】:

    【解决方案2】:

    $steamID = $array['response']['players'][0]['steamid'];

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2020-02-02
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 2015-08-30
      • 2012-12-31
      相关资源
      最近更新 更多