如何仅从 youtube 的 URL 获取视频 ID?
例如,
http://www.youtube.com/watch?v=aPm3QVKlBJg
有时 URL 会在“v”之后包含其他信息,例如
但我不需要其他信息,只需要视频 ID。
我只能想到使用爆炸,
$url = "http://www.youtube.com/watch?v=aPm3QVKlBJg";
$pieces = explode("v=", $url);
但是如何清理这样的 URL 呢?
当可以通过专门构建的函数完成同样的事情时,您永远不应该使用正则表达式。
您可以使用parse_url将 URL 分解为多个片段,并且parse_str将查询字符串部分分解为键/值数组:
$url = 'http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index'
// break the URL into its components
$parts = parse_url($url);
// $parts['query'] contains the query string: 'v=Z29MkJdMKqs&feature=grec_index'
// parse variables into key=>value array
$query = array();
parse_str($parts['query'], $query);
echo $query['v']; // Z29MkJdMKqs
echo $query['feature'] // grec_index
的替代形式parse_str
将变量提取到当前作用域中。您可以将其构建到一个函数中来查找并返回v
范围:
// Returns null if video id doesn't exist in URL
function get_video_id($url) {
$parts = parse_url($url);
// Make sure $url had a query string
if (!array_key_exists('query', $parts))
return null;
parse_str($parts['query']);
// Return the 'v' parameter if it existed
return isset($v) ? $v : null;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)