Hôm nay làm một dự án liên quan việc lấy ID video trên Youtube. Khách hàng gửi qua 1 danh sách URL các video trên Youtube nói chung là tùm lum các kiểu như:
1 2 3 4 5 6 7 8 | https://youtu.be/xCBQaC8LYHc?list=PL77A1303BB0D253A2 http://www.youtube.com/watch?v=0zM3nApSvMg&feature=feedrec_grec_index http://www.youtube.com/user/IngridMichaelsonVEVO#p/a/u/1/QdK8U-VIH_o http://www.youtube.com/v/0zM3nApSvMg?fs=1&hl=en_US&rel=0 http://www.youtube.com/watch?v=0zM3nApSvMg#t=0m10s http://www.youtube.com/embed/0zM3nApSvMg?rel=0 http://www.youtube.com/watch?v=0zM3nApSvMg http://youtu.be/0zM3nApSvMg |
Đấy! Nói chung không theo 1 trật tự cú pháp gì hết nên để xử lý mình phải viết 1 hàm để tách và lấy chỉ có ID của Youtube thôi. Sau một hồi tìm kiếm và thử nghiệm thì đây là hàm để xử lý vấn đề này.
1 2 3 4 | function youtube_id_from_url($input) { $input = preg_match('~https?://(?:[0-9A-Z-]+\.)?(?:youtu\.be/|youtube(?:-nocookie)?\.com\S*[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=&+%\w.-]*(?:[\'"][^<>]*>|</a>))[?=&+%\w.-]*~ix',$input,$match); return $match[1]; } |
Xin mạn phép chia sẻ lên đây để huynh đệ nào sau này cần thì có thể dùng.
Chúc các bạn thành công.
Huỳnh Mai Anh Kiệt
- Advertisement -