我在这个阶段是php新手,同样关于openID库。我想为Steam用户建立一个网站,所以我需要显示他们的库存。我已经下载了一些最常用的东西,但我还需要其他东西。作为一项培训,我采取的不仅仅是库存,而是类似的。没有成功,所以我希望你能帮助我。
这是我在尝试解码其他数据时所看到的一个例子。
{
"response": {
"players": [
{
"steamid": "76hidden",
"communityvisibilitystate": 3,
"profilestate": 1
}
]
}
}
PHP中的代码看起来像
$url2 = file_get_contents("url");
$content = json_decode($url2, true);
$_SESSION['steam_steamid'] = $content['response']['players'][0]['steamid'];
$steamprofile['steamid'] = $_SESSION['steam_steamid'];
上面的这个很好用。你能解释一下为什么" steamid"之间有0。和#34;球员"?看起来会话名称很重要,对吗?我正在做一些测试,当我更改名称会话时,它没有工作。
所以这就是我正在做的事情 JSON代码:
{
"friendslist": {
"friends": [
{
"steamid": "765hidden",
"relationship": "friend",
"friend_since": 1428495026
},
{
"steamid": "764hidden",
"relationship": "friend",
"friend_since": 1355599210
},
{
"steamid": "764hidden",
"relationship": "friend",
"friend_since": 1423504205
},
much more friends
]
}
}
所以我想得到蒸汽,我不知道如何得到它。我已尝试获得关系,因为上面已经使用了steamID:
$url3 = file_get_contents("url2");
$content2 = json_decode($url3, true);
$_SESSION['steam_relationship'] = $content2['friendslist']['friends'][0]['relationship'];
$steamfriends['friend'] = $_SESSION['steam_relationship'];
当然回声$ steamfriend ['朋友']无效。我看到制作这些PHP文件的人已经知道什么是会话名称(如果他们需要正确工作)。任何想法我在哪里可以找到它?
我感到非常惭愧,我自己无法理解。
问候。
答案 0 :(得分:1)
第一个JSON
{
"response": {
"players": [
{
"communityvisibilitystate": 3,
"profilestate": 1,
"steamid": "76hidden"
}
]
}
}
转换为此PHP数组
$content = array(
"response" => array(
"players" => array(
array(
"communityvisibilitystate" => 3,
"profilestate" => 1,
"steamid" => "76hidden"
)
)
)
)
玩家是一个阵列阵列(哈希数组),所以要访问第一个玩家,你需要使用索引号($content["response"]["players"][0]["steamid"]
),即使玩家阵列中只有一个玩家。
要从第二个数组中获取所有steamid
,您只需运行一个简单的foreach:
$friendIds = array();
foreach ($content2["friendslists"]["friends"] as $friend) {
$friendIds[] = $friend["steamid"];
}
# array("764hidden", "764hidden", "764hidden")
var_export($friendIds);
答案 1 :(得分:0)
创建JSON时,他们使用类似于此的方法:
foreach ($record as $response){
$content['response']['players'][] = $response;
}
$ player可能是具有多个值的数组。
这样可以更轻松地创建JSON。
首先使JSON成为一个数组:
$array = json_decode($json,true)
然后就这样:
session_start();
$_SESSION['relationship'] = $array['friendslist']['friends'][0]['relationship'];
$_SESSION['steamid'] = $array['friendslist']['friends'][0]['steamid'];
$_SESSION['steam_relationship'] = $array['friendslist']['friends'][0]['steam_relationship'];
获取所有玩家信息的典型方式:
foreach ($array['friendslist']['friends'] as $key => $value){
$steamid = $value['steamid'];
$relationship = $value['relationship'];
$friend_since = $value['friend_since'];
// do what need to be done here.
}