ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して URL から YouTube ビデオ ID を抽出するにはどうすればよいですか?

PHP を使用して URL から YouTube ビデオ ID を抽出するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-02 06:34:02785ブラウズ

How to Extract YouTube Video IDs from URLs with PHP?

PHP を使用した YouTube ビデオ ID の抽出

Web アプリケーションでは、多くの場合、ユーザーが入力した URL から YouTube ビデオ ID を抽出する必要があります。 YouTube API はこのタスク用の直接的な機能を提供していませんが、代替ソリューションはあります。

1 つの方法は、正規表現を使用して URL 文字列を解析することです。これを行う 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>

たとえば、 echo youtube_id_from_url('http://youtu.be/NLqAF9hrVbY'); を実行します。 「NLqAF9hrVbY」が出力されます。

もう 1 つのオプションは、YouTube の oEmbed サービスを使用することです。これにより、ID を含むビデオに関するメタデータが提供されます。以下に例を示します。

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

oEmbed サービスは、ビデオ タイトルやサムネイルなどの追加情報を提供します。ただし、ID は応答に直接含まれません。

最終的に、使用する方法の選択は、特定のニーズによって異なります。通常、正規表現を使用する方が簡単ですが、oEmbed サービスはより包括的な情報を提供できます。

以上がPHP を使用して URL から YouTube ビデオ ID を抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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