解析iTunes json,然后在网页上显示它,并使用PHP缓存它

时间:2011-06-24 00:44:22

标签: php json parsing itunes

我正在开展一个项目,我需要从iTunes获取信息,缓存它,并使用PHP将其显示在网页上。我更喜欢使用curl,因为它似乎更快,但我更熟悉get_file_contents。 json url的一个示例是http://itunes.apple.com/lookup?id=284910350。我能抓住并解码它,但我遇到了麻烦。

这是我的开始:

<?php

    $cas = curl_init('http://itunes.apple.com/lookup?id=284910350');
    curl_setopt($cas, CURLOPT_RETURNTRANSFER, 1);
    $jsonitunes = curl_exec($cas);
    curl_close($cas);

    $arr = json_decode($jsonitunes,true);
    foreach($arr as $item) {
        echo "kind: ". $item['kind'] ."<br>"; 
    }


?>

我可以打印数组,或者var_dump它,但似乎无法获取任何值。在那之后,我需要缓存整个事情。如果可能的话,我想把它设置为在到达时抓住新内容,或者经常安排,而不会影响服务器。

3 个答案:

答案 0 :(得分:1)

您是否尝试过json_decode功能?您应该能够使用cURL下载该页面的内容,将其存储在变量中,然后使用json_decode。

答案 1 :(得分:1)

PHP Notice:  Undefined index:  kind in /var/www/html/frank/scratch.php on line 9

这应该是你的第一个线索(确保你在工作时可以看到它们的地方记录通知)。当你看到它时,你知道你正在错误地引用数组。

你的下一步应该是

var_dump($arr);

查看您正在寻找的密钥的位置。

然后你应该看到你确实需要

foreach($arr['results'] as $item) {

答案 2 :(得分:1)

<pre>
<?php

    $ch = curl_init("http://itunes.apple.com/lookup?id=284910350");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $content = curl_exec($ch);
    curl_close($ch);

    $jsonDecoded = json_decode($content, true);
    echo $jsonDecoded['results'][0]['artistName'];

?>
</pre>