从 YouTube 网址中提取视频 ID
在代码中使用 YouTube 视频网址时,通常需要提取视频 ID 进行识别或加工。虽然 YouTube API 没有直接提供执行此操作的函数,但您可以使用简单的技术来解析 URL 并检索 ID。
使用正则表达式解析 URL
一种常见的方法是使用正则表达式从 URL 中匹配并提取视频 ID。以下是使用此技术的 PHP 函数示例:
<code class="php">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 URL 作为输入,并将其与捕获视频 ID 的正则表达式进行匹配。该模式确保它与不同格式的有效 YouTube URL 匹配。
示例用法
要使用此功能,您可以提供 YouTube URL 并检索提取的视频 ID :
<code class="php">echo youtube_id_from_url('http://youtu.be/NLqAF9hrVbY'); # NLqAF9hrVbY</code>
替代方法:YouTube Oembed 服务
虽然与 API 没有直接关系,但 YouTube 还提供了一个 oembed 服务,该服务提供有关某个内容的更多元信息YouTube 网址。但是,无法通过此服务直接获取视频 ID。
通过使用 oembed 服务,您可以获得标题、作者、缩略图等信息。这对于验证 YouTube 网址或提取其他相关详细信息非常有用。
<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>
以上是如何从 URL 中提取 YouTube 视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!