lau*_*kok 1 php youtube explode
如何仅从youtube的网址中获取视频ID?
例如,
有时URL会在'v'之后包含其他信息
http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index
但我不想要其他信息,只是视频ID.
我只能想到使用爆炸,
$url = "http://www.youtube.com/watch?v=aPm3QVKlBJg";
$pieces = explode("v=", $url);
Run Code Online (Sandbox Code Playgroud)
但如何清理这样的URL?
http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index
mea*_*gar 10
当通过专用函数完成同样的事情时,你永远不应该使用正则表达式.
您可以使用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
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |