2016-01-29 106 views
-1

我正在使用youtube v3 api。经过几次测试,我意识到我需要一些帮助。当我试图显示XML内容时,我只是得到空值。有谁能够帮助我?Php - 在表中显示youtube视频

如果你想看到XML:

https://www.youtube.com/feeds/videos.xml?channel_id= $的channelID

而且我的代码是:

$xml=simplexml_load_file("videos.xml"); 
foreach($xml as $content) { 
    echo $content->title . "<br>"; 
    echo $content->link['href'] . "<br>"; 

}

的XML我想显示:

<entry> 
Video ID <yt:videoId>Q4vSZA_8kYY</yt:videoId> 
Video title <title>¡Trailer del canal! CBPrductions</title> 

Upload date <published>2016-01-14T07:37:03+00:00</published> 

<media:group> 
Description <media:description> 
LIKE PORQUE LO DIGO YO _ Suscribete!: https://www.youtube.com/user/SpanishCBProductions Dale a LIKE a mi página Facebook: https://www.facebook.com/SpanishCBProductions Sigueme en TWITTER!: https://twitter.com/CcristianN3 Y en mi poco sexy INSTAGRAM: http://instagram.com/ccristiann3/ 
</media:description> 
</media:group> 
</entry> 
+0

可能想要把实际的信道ID在链接 – thanksd

+0

你可以用户任何你想要的id,例如= UCBR8-60-B28hp2BmDPdntcQ(YouTube Spotlight) – lluiscab

+0

请将相关部分的XML复制到你的问题 – michi

回答

2

我想你可以注册命名空间并使用xpath。 然后对于'media'和'yt',你可以通过传递命名空间来获得children

如果你想显示的第一个条目:

$url = 'https://www.youtube.com/feeds/videos.xml?channel_id=UCRGn72Qu0KTtI_ujNxRr3Fg'; 
$xml = simplexml_load_file($url); 
$ns = $xml->getDocNamespaces(true); 
$xml->registerXPathNamespace('a', 'http://www.w3.org/2005/Atom'); 
$elements = $xml->xpath('//a:entry'); 
$content = $elements[0]; 

$yt = $content->children('http://www.youtube.com/xml/schemas/2015'); 
$media = $content->children('http://search.yahoo.com/mrss/'); 
echo "Video ID: " . $yt->videoId . "<br>"; 
echo "Video title: " . $content->title . "<br>"; 
echo "Upload date: " . $content->published . "<br>"; 
echo "Description: " .$media->group->description . "<br>"; 

如果要显示所有条目的信息,您可以使用:

foreach ($elements as $content) { 
    $yt = $content->children('http://www.youtube.com/xml/schemas/2015'); 
    $media = $content->children('http://search.yahoo.com/mrss/'); 
    echo "Video ID: " . $yt->videoId . "<br>"; 
    echo "Video title: " . $content->title . "<br>"; 
    echo "Upload date: " . $content->published . "<br>"; 
    echo "Description: " . $media->group->description . "<br>"; 
    echo "<br>"; 
} 
+0

非常感谢!但是,有一个问题,youtube xml模式,w3.org和yahoo链接的“使用”是什么? – lluiscab

+0

Btw:缩略图我必须做的:$ media-> group-> thumbnail ['url']? – lluiscab

+0

@lluiscab对于你可以使用的缩略图:'$ media-> group-> thumbnail-> attributes() - > url - > __ toString()' –