Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Mengekstrak ID Video YouTube dengan Amanah Menggunakan Ungkapan Biasa?

Bagaimana Mengekstrak ID Video YouTube dengan Amanah Menggunakan Ungkapan Biasa?

Barbara Streisand
Barbara Streisandasal
2024-12-03 17:50:15852semak imbas

How to Reliably Extract YouTube Video IDs Using Regular Expressions?

Menghuraikan ID Video YouTube Menggunakan preg_match

Percubaan untuk mendapatkan ID video daripada URL YouTube menggunakan preg_match, isu timbul apabila corak disediakan membawa kepada "Ralat '[' pengubah tidak diketahui." Untuk menangani perkara ini, ungkapan biasa alternatif ditawarkan yang menangkap ID video secara berkesan merentas pelbagai format URL.

Ungkapan biasa yang dipertingkatkan adalah seperti berikut:

if (preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/\s]{11})%i', $url, $match)) {
    $video_id = $match[1];
}

Corak ini berjaya memadankan URL berikut format:

  • URL Lengkap: http://www.youtube.com/watch?v=dQw4w9WgXcQ
  • Benamkan URL: http://www.youtube.com/embed/dQw4w9WgXcQ
  • URL Pendek: http://youtu.be/dQw4w9WgXcQ
  • URL Carian: http://www.youtube.com/?v=dQw4w9WgXcQ
  • URL Pengguna: http://www.youtube.com/user/username#p/u/11/dQw4w9WgXcQ
  • URL Saluran: http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/dQw4w9WgXcQ
  • URL Terbenam (iframe): http://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ
  • URL Terbenam (objek): http://www.youtube.com/?feature=player_embedded&v= dQw4w9WgXcQ

Menggunakan regex ini, ID video boleh diekstrak dengan pasti daripada pelbagai URL YouTube.

Atas ialah kandungan terperinci Bagaimana Mengekstrak ID Video YouTube dengan Amanah Menggunakan Ungkapan Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn