регулярное выражение youtube

im пытается сделать эту работу для всех ссылок YouTube, которые работают, за исключением youtube.com/v/videoid

только смотреть? v = работает с этим регулярным выражением, любая помощь очень полезна.

/http:\/\/(?:youtu\.be\/|(?:[az]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/i 

 /((http:\/\/)?(?:youtu\.be\/|(?:[az]{2,3}\.)?youtube\.com\/v\/)([\w-]{11}).*|http:\/\/(?:youtu\.be\/|(?:[az]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*)/i 

Для этого является регулярной библиотекой регулярных выражений . Попробуйте следующую ссылку: http://www.regexlib.com/Search.aspx?k=youtube

это мой первый вклад, надеюсь, что это поможет.

 $url = "https://www.youtube-nocookie.com/embed/lCpaCAfhCH4"; if (preg_match("/^((https?:\/\/)?(w{0,3}\.)?youtu(\.be|(be|be-nocookie)\.\w{2,3}\/))((watch\?v=|v|embed)?[\/]?(?P<video>[a-zA-Z0-9-_]{11}))/si", $url, $matches)) { echo $matches['video']; } 

Это регулярное выражение работает с любым типом URL-адреса youtube (длинным, коротким, встроенным, защищенным и т. Д.),

Благодаря!

сделано использование регулярное выражение. Это лучший способ захватить идентификатор видео

 <?php $url = "http://www.youtube.com/watch?v=KkMDCCdjyW8&feature=relate"; parse_str( parse_url( $url, PHP_URL_QUERY ), $my_array_of_vars ); echo $my_array_of_vars['v']; // Output: KkMDCCdjyW8 ?> 

здесь работает