使用 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中文网其他相关文章!