简体   繁体   English

如何使用file_get_contents从数组中获取特定字段

[英]How to fetch specific fields from array using file_get_contents

I want to fetch player fields: 我想获取玩家字段:

eg id,name,tag,plat etc 例如ID,名称,标签,平台等

I have this type of data: 我有这种类型的数据:

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
                )

How can I fetch this data? 如何获取此数据?

Here is my code: 这是我的代码:

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

to get the name you should do this: 要获得名称,您应该这样做:

echo $data->player->name;

You need this because you have a stdClass Object 您需要这个,因为您有一个stdClass Object

You can also change the out to just a array, you have to change this: 您还可以将out更改为一个数组,您必须更改以下内容:

$data = json_decode($json);

to this: 对此:

$data = json_decode($json, true);

When you make this chagne you can get the value by this: 当您制作香奈儿时,您可以通过以下方式获得价值:

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

Edit 编辑

Below you can see the example, this works for me with no error. 在下面您可以看到示例,该示例对我来说没有错误。

$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;
$result = array();

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

var_dump($result);

不确定通过已获取的数据来获取数据是什么意思,但是如果您询问如何访问字段,则可以这样做。

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM