我正在开展一个项目,我需要从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它,但似乎无法获取任何值。在那之后,我需要缓存整个事情。如果可能的话,我想把它设置为在到达时抓住新内容,或者经常安排,而不会影响服务器。
答案 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>