PHP代码(Get / Fetch Kongregate Games)

时间:2014-04-11 10:29:47

标签: php xml arrays

你能帮助我吗执行时有一个问题被php检测到,但我认为我的代码没问题。

错误说“可捕获的致命错误:类stdClass的对象无法在第46行的C:\ Program Files \ wamp \ www \ getkongregate.php中转换为字符串”

kongregate xml网站:here

这是我的代码:

    <?php
        $xml = simplexml_load_string(file_get_contents('http://www.kongregate.com/games_for_your_site.xml'));
        $json = json_encode($xml);
        $games = json_decode($json);
        $count = 0;
        foreach ($games->game as $game) {
            echo $game->id . "\n";
            echo $game->title . "\n";
            echo $game->thumbnail . "\n";
            echo $game->launch_date . "\n";
            echo $game->category . "\n";
            if (array_key_exists('screenshot',$game)) {
                for($i=0;$i<=(count($game->screenshot)-1);$i++) {
                    echo $game->screenshot[$i] . "\n";
                }
            }
            echo $game->flash_file . "\n";
            echo $game->width . "\n";
            echo $game->height . "\n";
            echo $game->description . "\n";
            echo $game->instructions . "\n";
            echo $game->gameplays . "\n";
            echo $game->rating . "\n\n------\n\n";
        if ($count == 100) {break;}
        $count++;
    }
?>

1 个答案:

答案 0 :(得分:0)

您正在检索xml。

为什么要将其解析为json?

使用SimpleXmlElement,然后遍历xml元素以检索数据。

$xml = file_get_contents($map_url);
$simpleXmlElement = simplexml_load_string($xml);
var_dump($simpleXmlElement);

这里:: :)

$url = 'http://www.kongregate.com/games_for_your_site.xml';
$content = file_get_contents($url)
$xml = simplexml_load_string($content);

$count = 0;
foreach ($xml as $game) {

    echo strval($game->id) . PHP_EOL;
    echo strval($game->title) . PHP_EOL;
    echo strval($game->thumbnail) . PHP_EOL;
    echo strval($game->launch_date) . PHP_EOL;
    echo strval($game->category) . PHP_EOL;

    if (isset($game->screenshot) && is_array($game->screenshot)) {
        foreach ($game->screenshot as $screenshot) {
            echo strval($screenshot) . "\n";
        }
    }

    echo strval($game->flash_file) . PHP_EOL;
    echo strval($game->width) . PHP_EOL;
    echo strval($game->height) . PHP_EOL;
    echo strval($game->description) . PHP_EOL;
    echo strval($game->instructions) . PHP_EOL;
    echo strval($game->gameplays) . PHP_EOL;
    echo strval($game->rating) . PHP_EOL;

    if ($count >= 100) {
        break;
    }
    $count++;
}