首页 >后端开发 >php教程 >如何使用正则表达式可靠地提取 YouTube 视频 ID?

如何使用正则表达式可靠地提取 YouTube 视频 ID?

Barbara Streisand
Barbara Streisand原创
2024-12-03 17:50:15856浏览

How to Reliably Extract YouTube Video IDs Using Regular Expressions?

使用 preg_match 解析 YouTube 视频 ID

尝试使用 preg_match 从 YouTube URL 派生视频 ID,如果提供的模式会出现问题导致“未知修饰符‘[’错误”。为了解决这个问题,我们提供了另一种正则表达式,可以有效地捕获各种 URL 格式的视频 ID。

改进后的正则表达式如下:

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

此模式成功匹配以下 URL格式:

  • 完整网址: http://www.youtube.com/watch?v=dQw4w9WgXcQ
  • 嵌入网址: http://www.youtube.com/embed/dQw4w9WgXcQ
  • 短网址: http://youtu.be/dQw4w9WgXcQ
  • 搜索网址: http://www.youtube.com/?v=dQw4w9WgXcQ
  • 用户网址: http://www.youtube.com/user/username#p/u/11/dQw4w9WgXcQ
  • 频道网址: http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/0/dQw4w9WgXcQ
  • 嵌入网址(iframe): http://www.youtube.com/watch?feature=player_embedded&v=dQw4w9WgXcQ
  • 嵌入 URL(对象): http://www.youtube.com/?feature=player_embedded&v= dQw4w9WgXcQ

利用这个正则表达式,可以从各种 YouTube URL 中可靠地提取视频 ID。

以上是如何使用正则表达式可靠地提取 YouTube 视频 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn