Еще очень новичок в php и XML и пытается найти решение этого на некоторое время.Отображать дочерние элементы, которые существуют в обоих ответах XML
Я пытаюсь сравнить два возвращения XML и отображать только те дети, которые существуют в обоих из них. Чтобы быть конкретным, я использую Steam api, чтобы получить библиотеки игр от двух введенных паровых идентификаторов, и я хочу отображать игры, которые принадлежат обоим пользователям.
Вместо того, чтобы делать, что теперь покажет все игры, принадлежащие пользователю 1.
Вот та часть, я имею проблемы с, $ apinyckel ключ API и я не включая его в этой должности поскольку он не должен использоваться совместно.
$steamid2 = $_SESSION['steamid2'];
$steamid3 = $_SESSION['steamid3'];
//user1
$url4 = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=$apinyckel&steamid=$steamid2&format=xml&&include_appinfo=1";
$data4 = file_get_contents($url4);
$xml4 = simplexml_load_string($data4);
//user2
$url5 = "http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=$apinyckel&steamid=$steamid3&format=xml&&include_appinfo=1";
$data5 = file_get_contents($url5);
$xml5 = simplexml_load_string($data5);
foreach ($xml4->games->children() as $item2):
if ($xml4->games->child->appid === $xml5->games->child->appid) {
?><img src="http://media.steampowered.com/steamcommunity/public/images/apps/<?echo htmlentities($item2->appid);?>/<?echo htmlentities($item2->img_logo_url);?>.jpg"><?
}
endforeach;
Ниже приведен пример структуры XML для одного из пользователей.
<response>
<game_count>6</game_count>
<games>
<message>
<appid>520</appid>
<name>Team Fortress 2 Beta</name>
<img_icon_url>e3f595a92552da3d664ad00277fad2107345f743</img_icon_url>
<img_logo_url>6f6d22ab0c357d9f02a11f76ff35797e4ccdf19f</img_logo_url>
<has_community_visible_stats>true</has_community_visible_stats>
</message>
<message>
<appid>440</appid>
<name>Team Fortress 2</name>
<playtime_forever>30659</playtime_forever>
<img_icon_url>e3f595a92552da3d664ad00277fad2107345f743</img_icon_url>
<img_logo_url>07385eb55b5ba974aebbe74d3c99626bda7920b8</img_logo_url>
<has_community_visible_stats>true</has_community_visible_stats>
</message>
<message>
<appid>550</appid>
<name>Left 4 Dead 2</name>
<playtime_forever>1822</playtime_forever>
<img_icon_url>7d5a243f9500d2f8467312822f8af2a2928777ed</img_icon_url>
<img_logo_url>205863cc21e751a576d6fff851984b3170684142</img_logo_url>
<has_community_visible_stats>true</has_community_visible_stats>
</message>
<message>
<appid>223530</appid>
<name>Left 4 Dead 2 Beta</name>
<img_icon_url/>
<img_logo_url/>
</message>
<message>
<appid>320</appid>
<name>Half-Life 2: Deathmatch</name>
<playtime_forever>70</playtime_forever>
<img_icon_url>795e85364189511f4990861b578084deef086cb1</img_icon_url>
<img_logo_url>6dd9f66771300f2252d411e50739a1ceae9e5b30</img_logo_url>
<has_community_visible_stats>true</has_community_visible_stats>
</message>
<message>
<appid>340</appid>
<name>Half-Life 2: Lost Coast</name>
<img_icon_url>795e85364189511f4990861b578084deef086cb1</img_icon_url>
<img_logo_url>867cce5c4f37d5ed4aeffb57c60e220ddffe4134</img_logo_url>
</message>
</games>
</response>
Любая помощь будет благодарна, спасибо!
@Johan Snitt, добавлен исправленный цикл – Danijel
Спасибо! Попробуем это завтра. –
Хм, я пытался это сделать, но что-то пошло не так. $ value ['img_logo_url'] и $ value ['appid'] показаны как первая буква имени сравниваемой игры. Таким образом, img url, например, «http://media.steampowered.com/steamcommunity/public/images/apps/T/T.jpg». –