首頁  >  文章  >  後端開發  >  如何使用 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 沒有為此任務提供直接函數,但還有替代解決方案。

一種方法是使用正規表示式來解析 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」。

另一個選擇是使用 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn