2013-04-02 79 views
0

我試圖從蒸汽API檢索匹配信息和我的PHP & XML知識是有限的,我一直在使用你夢幻般的網站來幫助我實現這一目標,但已經陷入困境。經過大約6個小時的試圖找到一個解決方案,我想我會問這裏的問題,因爲這可能是一個非常簡單的解決方案。

直接網址拉距離蒸氣API此信息如下: 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> 

而且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

未經測試:

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