php - 用php提取xml中的youtube

标签 php xml youtube

我正在用phph学习XML,并且正在尝试精确地录制YouTube视频

我设法获得了描述每个视频的摘录的标题,但我无法获得视频链接,我的问题源于每个条目有多个链接

 <entry>
        <id>http://gdata.youtube.com/feeds/api/videos/yN38y5MILbs</id>
        <published>2013-04-26T16:00:21.000Z</published>
        <updated>2014-01-24T19:24:02.000Z</updated>
        <category scheme="http://schemas.google.com/g/2005#kind" term="http://gdata.youtube.com/schemas/2007#video" />
        <category scheme="http://gdata.youtube.com/schemas/2007/categories.cat" term="Comedy" label="Comedy" />
        <title type="text">SURICATE - Movies vs. Life</title>
        <content type="text">Si tout pouvait se passer comme dans les films... Ce serait bien agréable. Si toi aussi tu es fan de ciné, prouve-le et gagne ta place pour MyWarnerDay sur h...</content>
        <link rel="alternate" type="text/html" href="https://www.youtube.com/watch?v=yN38y5MILbs&amp;feature=youtube_gdata" />
        <link rel="http://gdata.youtube.com/schemas/2007#video.ratings" type="application/atom+xml" href="https://gdata.youtube.com/feeds/api/videos/yN38y5MILbs/ratings" />
        <link rel="http://gdata.youtube.com/schemas/2007#video.complaints" type="application/atom+xml" href="https://gdata.youtube.com/feeds/api/videos/yN38y5MILbs/complaints" />
        <link rel="http://gdata.youtube.com/schemas/2007#video.related" type="application/atom+xml" href="https://gdata.youtube.com/feeds/api/videos/yN38y5MILbs/related" />
        <link rel="http://gdata.youtube.com/schemas/2007#mobile" type="text/html" href="https://m.youtube.com/details?v=yN38y5MILbs" />
        <link rel="self" type="application/atom+xml" href="https://gdata.youtube.com/feeds/api/videos/yN38y5MILbs" />
        <author>
            <name>GoldenMoustacheVideo</name>
            <uri>https://gdata.youtube.com/feeds/api/users/GoldenMoustacheVideo</uri>
        </author>
        <gd:comments>
            <gd:feedLink rel="http://gdata.youtube.com/schemas/2007#comments" href="https://gdata.youtube.com/feeds/api/videos/yN38y5MILbs/comments" countHint="3002" />
        </gd:comments>
        <yt:hd />
        <media:group>
            <media:category label="Comedy" scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Comedy</media:category>
            <media:content url="https://www.youtube.com/v/yN38y5MILbs?version=3&amp;f=videos&amp;d=AdCwUSS4vp5b8jXYalmwHVYO88HsQjpE1a8d1GxQnGDm&amp;app=youtube_gdata" type="application/x-shockwave-flash" medium="video" isDefault="true" expression="full" duration="159" yt:format="5" />
            <media:content url="rtsp://r5---sn-p5qlsu7z.c.youtube.com/CkULENy73wIaPAm7LQiTy_zdyBMYDSANFEgGUgZ2aWRlb3NyIQHQsFEkuL6eW_I12GpZsB1WDvPB7EI6RNWvHdRsUJxg5gw=/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="159" yt:format="1" />
            <media:content url="rtsp://r5---sn-p5qlsu7z.c.youtube.com/CkULENy73wIaPAm7LQiTy_zdyBMYESARFEgGUgZ2aWRlb3NyIQHQsFEkuL6eW_I12GpZsB1WDvPB7EI6RNWvHdRsUJxg5gw=/0/0/0/video.3gp" type="video/3gpp" medium="video" expression="full" duration="159" yt:format="6" />
            <media:description type="plain">Si tout pouvait se passer comme dans les films... Ce serait bien agréable. Si toi aussi tu es fan de ciné, prouve-le et gagne ta place pour MyWarnerDay sur h...</media:description>
            <media:keywords />
            <media:player url="https://www.youtube.com/watch?v=yN38y5MILbs&amp;feature=youtube_gdata_player" />
            <media:thumbnail url="https://i.ytimg.com/vi/yN38y5MILbs/0.jpg" height="360" width="480" time="00:01:19.500" />
            <media:thumbnail url="https://i.ytimg.com/vi/yN38y5MILbs/1.jpg" height="90" width="120" time="00:00:39.750" />
            <media:thumbnail url="https://i.ytimg.com/vi/yN38y5MILbs/2.jpg" height="90" width="120" time="00:01:19.500" />
            <media:thumbnail url="https://i.ytimg.com/vi/yN38y5MILbs/3.jpg" height="90" width="120" time="00:01:59.250" />
            <media:title type="plain">SURICATE - Movies vs. Life</media:title>
            <yt:duration seconds="159" />
        </media:group>
        <gd:rating average="4.9594884" max="5" min="1" numRaters="58156" rel="http://schemas.google.com/g/2005#overall" />
        <yt:statistics favoriteCount="0" viewCount="4916249" />
    </entry>

我在php中所做的是这个问题,但是对于链接,我可以没有一些指针吗
foreach ($video->entry as $videoinfo){

  echo '<h2>'.$videoinfo->title.'</h2><br>';
  echo  '<p>'.$videoinfo->content.'<br>';
  echo $videoinfo->link.'<br></p>';
  }

谢谢您的帮助

最佳答案

如果您对xml进行更深入的研究,则可以转到该链接(并且仍然可以通过这种方式获取标题和描述)。

foreach ($video -> entry as $videoinfo){
    $mediaElem = $videoinfo -> children( 'media', true );

    echo '<h2>' . $mediaElem -> group -> title . '</h2>';
    echo '<p'> . $mediaElem -> group -> description . '<br>';
    echo "<a href='" . $mediaElem -> group -> player -> attributes() -> url . "'>Watch on YouTube</a></p>"
}

关于php - 用php提取xml中的youtube,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386723/

相关文章:

php - 为什么这个正则表达式不起作用......有什么想法吗?

javascript - 使用ajax从xml url获取纬度和经度

jquery - 如何创建一个简单且独立于浏览器的工具提示?

download - 将临时下载链接 (URL) 转换为永久链接

php - 如何从数据库调用 `id`?

php - mysql数据库中的自增字段递增超过1

php - PDO 有效 SELECT 和 INSERT

java - 如何使用 Jackson 将 POJO 转换为 XML

c# - 从 azure 响应反序列化 xml

iOS - 从表格单元格全屏播放 YouTube 视频