使用 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&format=json', urlencode($url)))));</code>
oEmbed 服務提供附加信息,例如影片標題和縮圖。但是,ID 不會直接包含在回應中。
最終,選擇使用哪種方法取決於您的特定需求。使用正規表示式通常更簡單,而 oEmbed 服務可以提供更全面的資訊。
以上是如何使用 PHP 從 URL 中提取 YouTube 影片 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!