PHP-код не работает так, как должен - PullRequest
1 голос
/ 19 марта 2011

В чем проблема с этим кодом?

$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-адресов (через канал API YouTube) в формате:

http://localhost/video/video-id/

Но код возвращает ужасный список URL (в том формате, в котором я хочу), смешанный и повторенный.

PS: перед str_replace ссылки отображались корректно, но в формате:

http://www.youtube.com/watch?v=video-id&feature=youtube_gdata_player

Что не так? Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 19 марта 2011

последняя строка - проблема: вы добавляете каждую запись в $ details и выводите ее дополнительно.Просто поместите

echo $details;

за петлей и удалите эхо в петле, и все.Используя текущий код, вы повторяете содержимое, добавляя его в переменную и повторяя его.

0 голосов
/ 19 марта 2011

echo $details .= '..'; $ детали не определены ранее, поэтому используйте echo $details = '...'

...