我正在尝试从Steam API中检索匹配信息,并将其作为我的PHP& XML知识是有限的,到目前为止,我一直在使用你的网站帮助我完成这项任务,但已经陷入困境。在尝试找到解决方案大约6个小时之后,我想我会问这里的问题,因为这可能是一个非常简单的解决方案。
从Steam API提取此信息的直接URL如下: https:// api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id=123456789&format=xml&key=mysteamkey
我已经创建了一个html表单来提交MatchID,以便我可以根据需要更改它,代码如下:
<form action="retrieval.php" method="post">
MatchID <input type="text" name="MatchID">
<input type="submit">
</form>
和retrieval.php:
$context = stream_context_create(array('https' => array('header' => 'Accept: application/xml')));
$url1 = 'https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?match_id=';
$url2 = $_POST["MatchID"];
$url3 = '&format=xml&key=<mykeyhere>';
$urlfinal = $url1 . $url2 . $url3;
$xml = file_get_contents($urlfinal, false, $context);
$xml = simplexml_load_string($xml);
如果我是print_r($ xml);这使用一个示例MatchID,我得到以下内容: http://www.nimserv.com/chromebrowser.png http://www.nimserv.com/pagesource.png 所以在我天真的理解中,它似乎成功地检索了数据。
所以最后说到这一点,如果这是漫长的啰嗦道歉。我将如何跟进,以便能够以可以查询的格式生成每一行,以准备插入数据库?我已经尝试使用一些XMLParse方法,并且已经能够将其转换为html文本,我可能会编写一个脚本然后获取此信息并对其进行适当排序,但是我确信有更好的方法来执行此操作,比那个。如上所述,我的编程知识是有限的,所以当我解决这个问题时,我学到了很多东西。
感谢您的时间,感谢您提供的任何帮助。
答案 0 :(得分:0)
未经测试的:
foreach( $xml->players->player as $player ) {
echo 'id: ', $player->account_id, "\n";
...
}