Steam API, XML检索到PHP $变量


Steam API, XML Retrieval into PHP $Variable

我试图从Steam API检索匹配信息,并作为我的PHP &XML知识有限,到目前为止,我一直在使用您奇妙的网站来帮助我完成这项任务,但却陷入了困境。在花了大约6个小时试图找到一个解决方案后,我想我应该在这里问这个问题,因为可能有一个非常简单的解决方案。

从Steam API获取这些信息的直接URL如下:https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/? match_id = 123456789,格式= xml&关键= mysteamkey

我已经创建了一个html表单来提交MatchID,这样我就可以根据需要改变它,代码如下:

<form action="retrieval.php" method="post">
MatchID <input type="text" name="MatchID">
<input type="submit">
</form>

和retrieve .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.pnghttp://www.nimserv.com/pagesource.png因此,在我天真的理解中,它似乎成功地检索了数据。

终于言归正传了,如果这是冗长的道歉。我将如何从这一点跟进,能够有每行的格式可以查询,准备插入到数据库中?我尝试过使用一些XMLParse方法,并且已经能够将其转换为html文本,我可能会编写一个脚本,然后获取此信息并对其进行适当排序,但是我确信有比这更好的方法。如前所述,我的编程知识是有限的,所以当我完成这个工作时,我学到了很多。

感谢您的时间,感谢您提供的任何帮助。

未经测试:

foreach( $xml->players->player as $player ) {
  echo 'id: ', $player->account_id, "'n";
  ...
}