ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して URL から YouTube ビデオ ID を抽出する方法

PHP を使用して URL から YouTube ビデオ ID を抽出する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 08:20:38529ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。