我想通过调用json_decoded api请求中的变量来创建flickr照片网址,但我无法输出任何值...
以下是代码:
$flickr = file_get_contents("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=b5c6ad8347e6dbeb62743d1be36dc9e1&photoset_id=72157628996146229&format=json&nojsoncallback=1", TRUE);
$flickr = json_decode($flickr, TRUE);
var_dump($flickr);
echo $flickr[photoset][photo][id];
可悲的是,这没有输出......
有什么想法吗?
简单的:)
非常感谢。
答案 0 :(得分:2)
echo $flickr[photoset][photo][id];
应该是:
echo $flickr['photoset']['photo']['id'];
在用作数组元素键时,PHP strings DOCs必须被单个('
)或双引号("
)包围。如果不是,那么PHP将尝试将它们评估为constants DOCs。
在这种情况下,json_decode()
DOCs返回一个数据数组,因此您需要循环访问它才能访问它:
foreach ($flickr['photoset']['photo'] as $item) {
echo $item['id'];
}
有关PHP foreach
see the manual的更多信息。
答案 1 :(得分:1)
$flickr['photoset']['photo']
是一系列照片。要打印所有照片ID,您应该:
foreach ($flickr['photoset']['photo'] as $photo) {
echo $photo['id'];
}
另外,请确保引用数组键(['photoset']
而不是[photoset]
)