【问题标题】:Php - Showing youtube videos in a tablePhp - 在表格中显示 youtube 视频
【发布时间】:2016-05-07 07:41:44
【问题描述】:

我正在使用 youtube v3 api。经过几次测试,我意识到我需要一些帮助。当我试图显示 xml 内容时,我只是得到空值。有人可以帮帮我吗?

如果你想查看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>

【问题讨论】:

  • 可能希望将实际频道 ID 放在链接中
  • 您可以使用任何您想要的 id,例如 =UCBR8-60-B28hp2BmDPdntcQ (YouTube Spotlight)
  • 请将 XML 的相关部分复制到您的问题中
  • 已更新,如果您想查看整个 xml 语法 > youtube.com/feeds/…

标签: php xml youtube


【解决方案1】:

我认为你可以注册命名空间并使用xpath。 然后对于“媒体”和“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>";
}

【讨论】:

  • 非常感谢!但是,有一个问题,youtube xml 模式、w3.org 和 yahoo 链接的“用途”是什么?
  • 顺便说一句:对于我必须做的缩略图: $media->group->thumbnail['url'] ?
  • @lluiscab 对于缩略图,您可以使用:$media-&gt;group-&gt;thumbnail-&gt;attributes()-&gt;url-&gt;__toString()
  • 好的,另一个问题 XD 如果我回显描述,都在一行中,我该如何解决?
猜你喜欢
  • 2018-02-12
  • 2016-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-07
相关资源
最近更新 更多