在享受了很多其他人的问题和答案之后,我在这里的第一个问题.感谢那 :)
我试图与vimeo的api一起工作,并且得到了我无法确定要使用的响应.我认为这对某些人来说很简单,但无法绕开它.
我需要一堆视频ID,以获取缩略图的网址.我想“询问”响应“此ID的缩略图URL是什么”并循环,尽管我所有的ID都是这样.
简化版本中的响应对象如下所示:
stdClass Object
(
[videos] => stdClass Object
(
=> Array
(
[0] => stdClass Object
(
[id] => 8128888
[thumbnails] => stdClass Object
(
[thumbnail] => Array
(
[0] => stdClass Object
(
[height] => 75
[width] => 100
[_content] => http://ts.vimeo.com.s3.amazonaws.com/370/931/37093137_100.jpg
)
)
)
)
[1] => stdClass Object
(
[id] => 8760295
[thumbnails] => stdClass Object
(
[thumbnail] => Array
(
[0] => stdClass Object
(
[height] => 75
[width] => 100
[_content] => http://ts.vimeo.com.s3.amazonaws.com/417/146/41714684_100.jpg
)
)
)
)
)
)
)
我需要像这样使用它(再次剥离),我无法弄清楚它的引用部分:
<?PHP while ( $vid->fetchRecord() ) :
$vid_id = $vid->get_field('video');
$thumb = "find [thumbnail][0][_content] where [id] = $vid_id";
?>
<img src="<?PHP echo $thumb;?>"
<?PHP endwhile ?>
那么,我离我有多近? :P
解决方法:
您可以将该结构重新定义为更简单的数组以供使用.以下假设上面的结构存储在$response中:
$videos = array();
foreach($response->videos->video as $video) {
if(count($video->thumbnails->thumbnail) > 0) {
$videos[$video->id] = $video->thumbnails->thumbnail[0]->_content;
}
}
这将为您提供ID到URL映射的数组$videos:
Array(
'8128888' => 'http://ts.vimeo.com.s3.amazonaws.com/370/931/37093137_100.jpg',
'8760295' => 'http://ts.vimeo.com.s3.amazonaws.com/417/146/41714684_100.jpg'
)
<?PHP while ( $vid->fetchRecord() ) :
$vid_id = $vid->get_field('video');
$thumb = $videos[$vid_id];
?>
<img src="<?PHP echo $thumb;?>"
<?PHP endwhile ?>