无法连接并输出我的json请求

时间:2018-06-16 04:28:09

标签: php json

所以我可以访问公共Web API,并且我试图从中提取信息并在PHP if语句中使用它。我尝试了几种不同的方法,但每次失败都有?我会发布所有失败的尝试,看看是否有人知道我做错了什么......

这是JSON文件;

{
  "players": [
    {
      "SteamId": "76561198074117457",
      "CommunityBanned": false,
      "VACBanned": true,
      "NumberOfVACBans": 1,
      "DaysSinceLastBan": 738,
      "NumberOfGameBans": 0,
      "EconomyBan": "none"
    }
  ]
}

尝试使用PHP函数     (php文件)

<?php      
  function VACBanned($vacban) {    
    if ($vacban == "false") {
      return "";
    }
    elseif ($vacban == "true") {
      return "<p>This user has a vac ban...</p>";
    } 
  }
?>

(索引文件)

<html>    
  <body>    
    <?=VACBanned($json['players'][0]['VACBanned']);?>    
  </body>    
</html>

这将输出以下错误;

PHP Notice:  Undefined index: players in index.php on line 13

我最初认为API一定不能正确连接,所以我进入了PHP文件并回复了我的用户ID,就像$json["players"][0]["SteamId"];一样,它起作用了......但当我去尝试执行索引<?php echo $json["players"][0]["SteamId"];?>中的同样的事情我又得到了错误?当我在php文件$test = $json["players"][0]["SteamId"];中执行此操作并在索引<?php echo $test;?>中执行此操作时,它回显了我的蒸汽ID ??????我试着像索引一样调用索引中的if语句

<?php
  if ($vac_ban == "false") {
    return "123";
  }
  else {
    return "<div class='ban_vac'><p>1 VAC BAN<br>76 Days Ago</p></div>";
  }
?>

和$ vac_ban将在php文件中显示为= $json["players"][0]["VACBanned"];,但这只会使其超出<?标记之上的所有内容并且不在其下方。 注意在此过程中的整个时间我使用include('filename');error_reporting(E_ALL); ini_set("display_errors", 1);连接了两个文件,json被解码json_decode(file_get_contents($api_url), true);

2 个答案:

答案 0 :(得分:0)

在使用PHP之前必须解码json:

$array = json_decode($data, true);

现在你可以做你想做的事了:

VACBanned($array['players'][0]['VACBanned']);

看看:json_decode

答案 1 :(得分:0)

所以,我为可能遇到此问题的任何人解决了这一问题,我只是将PHP代码放入一个文档中,它看起来很杂乱,但有效:)