来自 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
部分,而不是assets
。 classid
和 instanceid
似乎与 assets
中的匹配,但也有 name
和 tags
如果我将其更改为 $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 库存 API 或获取所有 Steam 项目列表的方法?有些网站怎么会有呢?
PHP/MariaDB 使用嵌套 JSON 数组进行重复键更新