我是 PHP 新手,我正在学习从 xml 和 json 文件中检索一些动态数据。我制作了两个代码来做两件不同的事情。第一个是 xml 游戏列表数据,如下所示:
https://steamcommunity.com/id/aksn1p3r/games?tab=all&xml=1
我想做的是结合两种获取数据的方式,从那个 xml 获取数据,然后使用变量 $appid 从另一个 json 数据源获取更多信息,然后再迭代下一个 $gdata。
<?php
$glist = 'https://steamcommunity.com/id/aksn1p3r/games?tab=all&xml=1';
$gxml = simplexml_load_file($glist);
foreach($gxml->games->game as $game) {
$appid = $game->appID;
$glink = $game->storeLink;
$gname = $game->name;
$glogo = $game->logo;
echo '<p>'. $appid . ' <a href="'. $glink .'">'. $gname .'<br>';
echo '<img src="'. $glogo .'" /></a></p>';
}
?>
这是一个json : [http://store.steampowered.com/api/appdetails/?appids=8870] ,它是使用名为$appid的变量构造的。
我希望它在上述循环的下一次迭代之前构建一个新链接,然后从 json 源中获取价格,即 $gprice ,如下所示:
<?php
$appid = '8870';
$ht = 'http://store.steampowered.com/api/appdetails/?appids=' . $appid;
$fgc = file_get_contents($ht);
$jd = json_decode($fgc, true);
$gdata = $jd[$appid]['data'];
$gprice = $gdata['price_overview']['final'];
$price = number_format($gprice / 100, 2);
echo 'Price: $' .$price;
?>
这是我尝试组合它的方式,但它挂起或出错。
<?php
$glist = 'https://steamcommunity.com/id/aksn1p3r/games?tab=all&xml=1';
$gxml = simplexml_load_file($glist);
foreach($gxml->games->game as $game) {
$appid = $game->appID;
$glink = $game->storeLink;
$gname = $game->name;
$glogo = $game->logo;
echo '<p>'. $appid . ': <a href="'. $glink .'">'. $gname .'<br>';
echo '<img src="'. $glogo .'" /></a><br>';
$gjson = 'http://store.steampowered.com/api/appdetails/?appids=' . $appid;
$fgc = file_get_contents($gjson);
$jd = json_decode($fgc, true);
$gdata = $jd[$appid]['data'];
$gprice = $gdata['price_overview']['final'];
$price = number_format($gprice / 100, 2);
echo 'Price: $' .$price. '</p>';
}
?>
我期待它使用$appid每个循环来构建到源的链接:$gjson,然后是file_get_contents($gjson); 获取数据,然后在继续下一个项目之前回显该$gprice 。
我犯的任何指示或错误,请帮助我使其正常工作?