在PHP中解析视频ID的youtube视频链接最合理的方法是什么?

时间:2011-10-10 18:36:21

标签: php

  

可能重复:
  Youtube API - Extract video ID
  How do I extract query parameters from an URL string in PHP?

如果输入如下:

$input = 'http://www.youtube.com/watch?v=ALph_u2iee8&feature=topvideos_music';

我想最终:

$result = 'ALph_u2iee8';

在PHP中最合理的方法是什么?

3 个答案:

答案 0 :(得分:11)

PHP已经有了解决这个问题的功能。

$input = 'http://www.youtube.com/watch?v=ALph_u2iee8&feature=topvideos_music';

$queryString = parse_url($input, PHP_URL_QUERY);

$queries = array();

parse_str($queryString, $queries);

echo $queries['v'];

答案 1 :(得分:0)

有些人会说使用正则表达式,但对于这么简单的事情,使用子字符串更快更好。

这应该做的工作:

$input = 'http://www.youtube.com/watch?v=ALph_u2iee8&feature=topvideos_music';
$start = strpos($input, '?v=');
$length = strpos($input, '&', $start + 1) - $start;
echo substr($input, $start + 3, $length);

当然,parse_url / parse_str是正确的方法。

答案 2 :(得分:0)

我在尝试从网址

获取YouTube视频ID时使用此功能
function get_youtube_id_from_url( $url ) {
    preg_match('/[\\?&]v=([^&#]*)/si', $url, $matches );

    return !empty( $matches ) ? $matches[1] : false;
}