gpt4 book ai didi

php - 仅从 youtube 的 URL 获取视频 ID

转载 作者:行者123 更新时间:2023-12-03 05:26:25 25 4
gpt4 key购买 nike

如何仅从 youtube 的 URL 中获取视频 ID?

例如,

http://www.youtube.com/watch?v=aPm3QVKlBJg



有时 URL 会在“v”之后包含其他信息,例如

http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index



但我不想要其他信息,只想要视频 ID。

我只能想到使用 explode ,
$url  = "http://www.youtube.com/watch?v=aPm3QVKlBJg";
$pieces = explode("v=", $url);

但是如何清理这样的 URL?

http://www.youtube.com/watch?v=Z29MkJdMKqs&feature=grec_index

最佳答案

当可以通过专门构建的函数完成相同的事情时,您永远不应该使用正则表达式。

您可以使用 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;
}

关于php - 仅从 youtube 的 URL 获取视频 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com