PHP代码不能正常工作

时间:2011-03-19 17:49:18

标签: php api youtube str-replace

此代码有什么问题?

$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

怎么了?我怎么解决这个问题?

2 个答案:

答案 0 :(得分:0)

echo $details .= '..';之前未定义$ details,因此请使用echo $details = '...'

答案 1 :(得分:0)

最后一行是问题:您将每个条目添加到$ details并另外回显它。只需加上

echo $details;
循环后面的

并删除循环中的回声,就是这样。使用当前代码,通过将内容添加到变量AND重复内容来重复内容。