首页 >后端开发 >php教程 >如何使用'preg_match”可靠地提取 YouTube 视频 ID?

如何使用'preg_match”可靠地提取 YouTube 视频 ID?

Barbara Streisand
Barbara Streisand原创
2024-12-02 07:24:10341浏览

How to Reliably Extract YouTube Video IDs Using `preg_match`?

使用 preg_match 解析 YouTube 视频 ID

尝试使用 preg_match 从 YouTube URL 中提取视频 ID,这是一种常见但不成功的方法使用特定的正则表达式。然而,这个表达式经常会导致“未知修饰符‘[’错误。

改进的解决方案

为了克服这个错误,一个具有更好通用性的增强正则表达式出现了:更好的选择:

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

钥匙特点

  1. 灵活性:这种全面的表达方式涵盖了多种YouTube URL格式,确保适应各种场景。
  2. 已记账的 URL: 它成功从具有以下内容的 URL 中提取视频 ID变体:

    • youtu.be 网址
    • YouTube 嵌入网址
    • 带有“v=”或“e/”前缀的常规 YouTube 网址
    • 视频后面带有附加内容的 URL ID
  3. 支持的平台:表达式可与 YouTube.com 和 YouTube-nocookie.com 网址无缝配合。
  4. 嵌入代码兼容性: 它可以优雅地处理嵌入代码,提取视频 ID,尽管其特定

URL 匹配示例

这种多功能表达式可以从一组不同的 URL 中准确匹配和提取视频 ID,包括:

  • http://youtu.be/dQw4w9WgXcQ
  • http://www.youtube.com/emb ed/dQw4w9WgXcQ
  • http://www.youtube.com/watch?v=dQw4w9WgXcQ
  • http://www .youtube.com/e/dQw4w9WgXcQ
  • http://www.youtube.com/v/dQw4w9WgXcQ
  • http://www.youtube.com/user/用户名...
  • http://www.youtube.com/watch?...

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

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