首页  >  文章  >  后端开发  >  如何使用 PHP 从 URL 中提取 YouTube 视频 ID?

如何使用 PHP 从 URL 中提取 YouTube 视频 ID?

Susan Sarandon
Susan Sarandon原创
2024-10-31 08:20:38421浏览

How to Extract YouTube Video IDs from URLs Using PHP?

如何使用 PHP 提取 YouTube 视频 ID

简介

从以下位置提取 YouTube 视频 ID URL 对于许多应用程序至关重要。这使得开发人员可以根据其唯一的 ID 来识别和处理视频。虽然 YouTube API 没有为此提供直接函数,但还有其他方法可用。

基于正则表达式的方法

常见的解决方案包括使用正则表达式来从 URL 中提取视频 ID。以下函数提供了 PHP 中的实现:

<code class="php">function youtube_id_from_url($url) {
    $pattern = '%^
        (?: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 作为参数传递即可:

<code class="php">$video_id = youtube_id_from_url('http://youtu.be/NLqAF9hrVbY');
echo $video_id; // NLqAF9hrVbY</code>

YouTube oEmbed 服务

虽然不是直接的 API 函数,但 YouTube 提供了 oEmbed 服务。通过以视频 URL 作为参数向特定 URL 发出请求,您可以检索有关视频的其他信息,包括其 ID。此方法可以提供更多上下文并允许 URL 验证。

<code class="php">$url = 'http://youtu.be/NLqAF9hrVbY';
$oembed_url = sprintf('http://www.youtube.com/oembed?url=%s&amp;format=json', urlencode($url));
$oembed_response = json_decode(file_get_contents($oembed_url));
if ($oembed_response) {
    $video_id = $oembed_response->video_id;
}</code>

以上是如何使用 PHP 从 URL 中提取 YouTube 视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn