YouTube从链接中解析视频ID

时间:2012-02-16 19:13:06

标签: php

使用Youtube频道如何解析$ link变量并获取视频ID?我可以获得链接但是parse_str部分似乎没有正常工作

youtube id解析:尝试使用下面的当前代码

if ( ! empty($xml->channel->item[0]->link) )
{
  parse_str(parse_url($xml->channel->item[0]->link, PHP_URL_QUERY), $url_query);

  if ( ! empty($url_query['v']) )
    $id = $url_query['v'];
}

echo $id;

当前代码:

    <?php
    $id = NULL;
    $username = 'utahblaze';
    $url = 'http://gdata.youtube.com/feeds/api/users/%s/uploads?orderby=updated&max-results=8';
    $xml = simplexml_load_file(sprintf($url, $username));

    foreach ($xml->entry as $entry) :

        $kids = $entry->children('http://search.yahoo.com/mrss/');
        $attributes = $kids->group->content[0]->attributes();
        $flv = $attributes['url'];
        $attributes = $kids->group->player->attributes();
        $link = $attributes['url']; 


    echo $id;
    echo $link;

    ?>

<a id="ytopen" href="<?=$link?>">
<img src="http://i4.ytimg.com/vi/<?=$id?>/default.jpg" /></a>

    <?php endforeach; ?>

1 个答案:

答案 0 :(得分:2)

将此内容放在$link = $attributes['url'];

之后
$querystring = parse_url($link);
$id = $querystring['query'];
$path = $querystring['path'];
$host = $querystring['host'];
$scheme = $querystring['scheme'];

parse_str($querystring['query'], $id_temp);

$link = $scheme . '://' . $host . $path . '/' . $id_temp['v'];