我想通過其嵌入代碼或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