从 YouTube URL 中提取视频 ID
在用户提供 YouTube 视频 URL 的情况下,需要提取视频 ID 才能实现各种功能。虽然 YouTube API 没有提供用于此目的的专用函数,但可以使用替代方法。
一种方法涉及使用正则表达式来解析 URL 并隔离视频 ID。以下是利用此方法的 PHP 函数示例:
<code class="php">/** * get youtube video ID from URL * * @param string $url * @return string Youtube video id or FALSE if none found. */ function youtube_id_from_url($url) { $pattern = '%^# Match any youtube URL (?:https?://)? # Optional scheme. Either http or https (?:www\.)? # Optional www subdomain (?: # Group host alternatives youtu\.be/ # Either youtu.be, | youtube\.com # or youtube.com (?: # Group path alternatives /embed/ # Either /embed/ | /v/ # or /v/ | /watch\?v= # or /watch\?v= ) # End path alternatives. ) # End host alternatives. ([\w-]{10,12}) # Allow 10-12 for 11 char youtube id. $%x'; $result = preg_match($pattern, $url, $matches); if ($result) { return $matches[1]; } return false; }</code>
另一个选择是利用 YouTube 的 oEmbed 服务。虽然它不直接提供视频 ID,但它提供有关 URL 的附加元数据。这是使用 JSON 的示例:
<code class="php">$url = 'http://youtu.be/NLqAF9hrVbY'; var_dump(json_decode(file_get_contents(sprintf('http://www.youtube.com/oembed?url=%s&format=json', urlencode($url)))));</code>
以上是如何从 YouTube URL 中提取视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!