来自 json 的 PHP 中的 Steam 库存

Posted

技术标签:

【中文标题】来自 json 的 PHP 中的 Steam 库存【英文标题】:Steam Inventory in PHP from json 【发布时间】:2018-05-24 09:51:38 【问题描述】:

所以基本上我试图通过获取 json 内容来获取 php 中的 Steam 播放器库存,但我不知道该怎么做,尤其是我以前没有经常使用 json。我有一个问题,我应该在 PHP 中选择什么来从 JSON 中获取我想要的东西。

PHP:

$inventoryJsonUrl = 'http://steamcommunity.com/inventory/'.$steamID.'/730/2?l=english&count=5000'; $inventoryJsonGet = file_get_contents($inventoryJsonUrl); $inventory = json_decode($inventoryJsonGet, TRUE); for ($i=0; $i < count($inventory['assets']) ; $i++) echo $inventory['assets'];

假设 $inventoryJsonURL 现在是 http://steamcommunity.com/inventory/76561198260345960/730/2?l=english&count=5000

我在获得我想要的东西时遇到了问题,我的意思是让我们说在 for 循环中我想要获得项目/皮肤的名称、该项目的 id 以及其他一些东西。但我不知道我应该如何以及选择什么来获得它。

抱歉英语不好。

提前致谢。

【问题讨论】:

我认为您要查找的数据在description 部分,而不是assetsclassidinstanceid 似乎与 assets 中的匹配,但也有 nametags 如果我将其更改为 $inventory['descriptions']['classid'] 我会收到以下错误:注意:未定义的索引:instanceid。这就是问题所在,因为我尝试了一些东西而不是资产,因为我确实认为这可能不是我想要的。 【参考方案1】:

您可以使用 PHP 的 foreach 循环。

$inventories = json_decode($inventoryJsonGet , TRUE);

// you can check the structure of your array by 
// print_r($inventories)
foreach ($inventories['descriptions'] as $key => $description) 
    echo '<pre>';
    echo $description['appid'];
    echo $description['market_name'];
    echo '</pre>';

【讨论】:

这就是我所需要的。非常感谢!【参考方案2】:

端点包含两个列表:资产和描述。如果您真的不知道自己在寻找什么,就很难提供帮助。我认为您正在寻找的是描述,因为有所有数据。第一项见这里:https://www.dropbox.com/s/z736vu6boh9rfi6/steam1.gif?dl=0 似乎这是 Counterstrike GO 中的一个小插曲。

另外,这篇文章可能对你有所帮助:Getting someone's Steam inventory

首先,我建议美化该 json 的内容,以便您更好地了解其中的内容。我通常使用https://codebeautify.org/jsonviewer,但还有其他几个。

【讨论】:

我一定会看看的!也感谢 json beatifier,我确实在不同的网站上使用过,但我现在更喜欢这个/

以上是关于来自 json 的 PHP 中的 Steam 库存的主要内容,如果未能解决你的问题,请参考以下文章

STEAM如何发库存链接教程

如何获取 Steam 库存 API 或获取所有 Steam 项目列表的方法?有些网站怎么会有呢?

PHP/MariaDB 使用嵌套 JSON 数组进行重复键更新

Steam Web API 获取 CS:GO 库存

JSON解析:来自PHP5(攻击数据库:mySQL)ios5 iphone

蒸汽平台终于上线了!你的Steam游戏库存还在吗?