我想通过其嵌入代码或URL从任何解决方案获取YouTube或Vimeo的视频ID?来自嵌入代码或来自URL正则表达式的YouTube Vimeo视频ID正则表达式RegEx
回答
您可以使用preg_match来获取ID。我将覆盖随后表达自己在这个答案,但这里是如何使用的preg_match的基本思想:
preg_match('expression(video_id)', "http://www.your.url.here", $matches);
$video_id = $matches[1];
下面是对每种类型可能的输入您问的表达式的崩溃。我包括一个链接,每个链接显示一些测试用例和结果。
对于YouTube网址如
http://www.youtube.com/watch?v=89OpN_277yY
,你可以使用表达:v=(.{11})
YouTube的嵌入代码可以是这样的(一些外来的东西修剪):
<object width="640" height="390"> <param name="movie" value="http://www.youtube.com/v/89OpN_277yY?fs=... ... </object>
或者是这样的:
<iframe ... src="http://www.youtube.com/embed/89OpN_277yY" ... </iframe>
所以表达式来无论从风格获得ID将this:
\/v\/(.{11})|\/embed\/(.{11})
Vimeo的网址样子
http://vimeo.com/<integer>
,据我可以告诉。我发现的最低值只是http://vimeo.com/2
,我不知道是否有上限,但我现在假设它只限于10位数。希望有人能纠正我,如果他们知道的细节。可以使用This表达:vimeo\.com\/([0-9]{1,10})
Vimeo的嵌入代码采用这种形式:
<iframe src="http://player.vimeo.com/video/<integer>" width="400" ...
所以可以使用this表达:
player\.vimeo\.com\/video\/([0-9]{1,10})
可替换地,如果长度的该数字最终可能会超过10,您可以使用:
player\.vimeo\.com\/video/([0-9]*)"
记住,在
"
将需要用\
如果你是封闭在双引号中的表达进行转义。
综上所述,我不知道你怎么想实现这一点,但你既可以将所有表达与|
,或者你可以单独匹配每一个。如果您希望我提供有关如何组合表达式的更多详细信息,请对此答案添加评论。
还有另外一个类似的[只适用于YouTube]在这里回答,可能是有用的看看。 PHP Regex to get youtube video ID?
感谢您的信息..它会有帮助.. – 2011-06-18 02:21:08
根据最新的youtube标准,您可以使用以下代码从嵌入代码中提取视频ID。
$embed = '<iframe src="//www.youtube.com/embed/n6WYu-pSXH8" frameborder="0"></iframe>';
preg_match('~embed/(.*?)"~', $embed, $output);
echo $output[1];
谢谢
- 1. (Javascript)来自嵌入代码的YouTube视频ID - 正则表达式?
- 2. YouTube视频ID的正则表达式
- 3. PHP正则表达式YouTube视频ID
- 4. PHP /正则表达式:从YouTube提取视频ID url-嵌入代码
- 5. 正则表达式vevo URL视频ID
- 6. 检索与正则表达式的Java嵌入YouTube视频ID
- 7. 正则表达式来提取YouTube视频ID?
- 8. 正则表达式来提取不同视频嵌入来源
- 9. 使用正则表达式来分离本地,YouTube或VIMEO视频
- 10. 正则表达式:从URL中剥离Youtube视频的ID
- 11. 来自wysiwyg的正则表达式
- 12. 来自python list的正则表达式
- 13. 来自jQuery源的正则表达式
- 14. 正则表达式来代替乱码
- 15. 正则表达式来从Java代码
- 16. 正则表达式来自/ *作者*/
- 17. 正则表达式来提取的YouTube/VIMEO网址
- 18. 正则表达式来分离自定义上传的视频
- 19. 在C#中的正则表达式(来自PHP的正则表达式)
- 20. 正则表达式youtube视频id的Javascript格式数组ids
- 21. 正则表达式来从任何YouTube网址YouTube的视频ID
- 22. 正则表达式来分割ID的
- 23. 正则表达式来排除URL的
- 24. PHP的正则表达式来从URL
- 25. 正则表达式来
- 26. 正则表达式来
- 27. Flex正则表达式来标识AWK正则表达式
- 28. Java正则表达式来发现正则表达式
- 29. 正则表达式来蟒蛇正则表达式
- 30. 使用正则表达式来隔离部分嵌入代码
TNX您的答复.. – 2011-05-06 09:07:30
我似乎没有当我使用这些正则表达式使用的preg_match得到任何比赛。我是否需要以某种方式修改它们,或者正则表达式的风格不同? – cowboybebop 2011-12-05 22:25:41
感谢张贴这个,真的帮我出去的人 – Julian 2012-01-06 01:50:15