可能重复:
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中最合理的方法是什么?
答案 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;
}