此代码有什么问题?
$feedURL = 'http://gdata.youtube.com/feeds/api/standardfeeds/US/most_viewed?v=2&time=all_time';
$site_url = 'http://localhost/';
// read feed into SimpleXML object
$sxml = simplexml_load_file($feedURL);
// iterate over entries in feed
foreach ($sxml->entry as $entry) {
// get nodes in media: namespace for media information
$media = $entry->children('http://search.yahoo.com/mrss/');
// get video player URL
$attrs = $media->group->player->attributes();
$watch = $attrs['url'];
$video_id = str_replace('http://www.youtube.com/watch?v=', '',$watch);
$video_id = str_replace('&feature=youtube_gdata', '',$video_id);
$video_id = str_replace('_player', '',$video_id);
echo $details .= '
'.$site_url.'video/'.$video_id.'';}
代码应返回25个url的列表(通过youtube api feed),格式为:
http://localhost/video/video-id/
但代码会返回一个丑陋的url列表(我想要的格式)混合并重复。
PS:在str_replace之前,链接显示正确,但格式为:
http://www.youtube.com/watch?v=video-id&feature=youtube_gdata_player
怎么了?我怎么解决这个问题?
答案 0 :(得分:0)
echo $details .= '..';
之前未定义$ details,因此请使用echo $details = '...'
答案 1 :(得分:0)
最后一行是问题:您将每个条目添加到$ details并另外回显它。只需加上
echo $details;
循环后面的并删除循环中的回声,就是这样。使用当前代码,通过将内容添加到变量AND重复内容来重复内容。