2014-02-06 33 views
-1

我想获取玩家区域来从阵列具体领域:如何使用的file_get_contents

如ID,名称,标签,高原等

我有这种类型的数据:

stdClass Object 
(
    [player] => stdClass Object 
     (
      [id] => 179203896 
      [game] => bf4 
      [plat] => pc 
      [name] => HeLLTiMe 
      [tag] => DK 
      [dateCheck] => 1391437377733 
      [dateUpdate] => 1391437377733 
      [dateCreate] => 1386696304438 
      [lastDay] => 20140117 
      [country] => 
      [countryName] => 
      [rank] => stdClass Object 
       (
        [nr] => 73 
        [imgLarge] => bf4/ranks/r73.png 
        [img] => r73 
        [name] => Chief Warrant Officer Five III 
        [needed] => 4920000 
        [next] => stdClass Object 
         (
          [nr] => 74 
          [img] => r74 
          [name] => Chief Warrant Officer Five IV 
          [needed] => 5030000 
          [curr] => 5022060 
          [relNeeded] => 110000 
          [relCurr] => 102060 
          [relProg] => 92.781818181818 
         ) 

       ) 

      [score] => 5025100 
      [timePlayed] => 862027 
      [uId] => 2832659368608119092 
      [uName] => HeLLTiMe 
      [uGava] => 0b8b00021ebfb32414e5a6051c2c9a40 
      [udCreate] => 1328606863000 
      [blPlayer] => http://battlelog.battlefield.com/bf4/soldier/HeLLTiMe/stats/179203896/pc/ 
      [blUser] => http://battlelog.battlefield.com/bf4/user/HeLLTiMe/ 
      [editable] => 
      [viewable] => 1 
      [adminable] => 
      [linked] => 
     ) 

    [stats] => stdClass Object 
     (
      [reset] => stdClass Object 
       (
        [lastReset] => 0 
        [score] => 0 
        [timePlayed] => 0 
        [timePlayedSinceLastReset] => 0 
        [kills] => 0 
        [deaths] => 0 
        [shotsFired] => 0 
        [shotsHit] => 0 
        [numLosses] => 0 
        [numWins] => 0 
       ) 

我如何获取这些数据?

这里是我的代码:

<?php 
$url = "http://api.bf4stats.com/api/playerInfo?plat=pc&name=HeLLTiMe"; 
$json = file_get_contents($url); 

$data = json_decode($json); 
echo "<pre>"; 
print_r($data); 
?> 

回答

2

得到你应该这样做的名字:

echo $data->player->name; 

你需要这个,因为你有一个stdClass Object

您也可以改变了,只是一个数组,你必须改变这样的:

$data = json_decode($json); 

这样:

$data = json_decode($json, true); 

当你做出这个chagne您可以通过此获得的价值:

echo $data['player']['name']; 

编辑

下面你可以看到的例子,这个工作对我来说,没有错误。

$url = "http://api.bf4stats.com/api/playerInfo?plat=pc&name=HeLLTiMe"; 
$json = file_get_contents($url); 

echo 'Using stdClass Object option<br>'; 
$data = json_decode($json); 
echo $data->player->name; 

echo '<br><br>Using Array option<br>'; 
$data = json_decode($json, true); 
echo $data['player']['name']; 

exit; 
+0

echo $ data [ '参赛者姓名'];返回空结果 –

+0

和echo $ data-> player-> name;正在产生错误:尝试获取第8行E:\ test \ api.php中非对象的属性 –

+0

签出我的编辑。这是没有错误的工作。 – Perry

0
$result = array(); 

$result['name'] = $data->Player->name 

var_dump($result); 
+0

我也能有这样的网址:http://api.bf4stats.com/api/playerInfo?plat=pc&name=HeLLTiMe&output=js 在这种情况下怎么办? –

0

不知道你是什么意思通过获取数据已经取出,但如果你问如何访问字段,你可以不喜欢这样。

print_r($data->player->name); 
+0

我只是想访问一些字段,如名称,平台等 –

+0

也是你的答案是产生错误:试图获得非线对象在第8行E:\测试\ api.php –