2014-02-18 6 views
3

Я хочу получить идентификатор видео YouTube из кода встраивания YouTube, используя preg_match или regex. Для примераПолучить идентификатор видео YouTube из встроенного кода iframe

<iframe width="560" height="315" src="//www.youtube.com/embed/0gugBiEkLwU?rel=0" frameborder="0" allowfullscreen></iframe> 

Я хочу взять ID 0gugBiEkLwU

Может кто-нибудь сказать мне, как это сделать. На самом деле вам нужна ваша помощь.

+0

возможно дубликат [шаблона RegEx, чтобы получить видео на YouTube ID из любого URL-адреса YouTube] (http://stackoverflow.com/questions/9594943/regex-pattern-to-get-the-youtube-video-id-from-any-youtube-url) – Rikesh

+0

Возможный дубликат [Как сделать найти все идентификаторы видео Youtube в строке с помощью регулярного выражения?] (http://stackoverflow.com/questions/5830387/how-to-find-all-youtube-video-ids-in-a-string-using-a- регулярное выражение) – HamZa

ответ

6

Используя эту модель с захватом группой должен дать вам строку, которую вы хотите:

d\/(\w+)\?rel=\d+" 

пример: https://regex101.com/r/kH5kA7/1

4

Вы можете использовать:

src="\/\/(?:https?:\/\/)?.*\/(.*?)\?rel=\d*" 

Проверить Демо Here

Пояснение:

enter image description here

2

Я знаю, что это довольно поздно, но я придумал кое-что для людей, которые все еще могут быть глядя. Поскольку не все Youtube IFrame ЦСИ атрибуты конца в «? Отн =», а иногда может заканчиваться в другой строке запроса или заканчиваться кавычками, вы можете использовать:

/embed\/([\w+\-+]+)[\"\?]/ 

Это захватывает что-нибудь после того, как «/ вставлять/"и до окончания строки double-quote/query. Выбор может включать любую букву, номер, подчеркивание и дефис.

Вот демо с несколькими примерами: https://regex101.com/r/eW7rC1/1

0

Ниже функция извлечет видео ID на YouTube из ТЕХ всех формат YouTube URLs,

function getYoutubeVideoId($iframeCode) { 

    // Extract video url from embed code 
    return preg_replace_callback('/<iframe\s+.*?\s+src=(".*?").*?<\/iframe>/', function ($matches) { 
     // Remove quotes 
     $youtubeUrl = $matches[1]; 
     $youtubeUrl = trim($youtubeUrl, '"'); 
     $youtubeUrl = trim($youtubeUrl, "'"); 
     // Extract id 
     preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $youtubeUrl, $videoId); 
     return $youtubeVideoId = isset($videoId[1]) ? $videoId[1] : ""; 
    }, $iframeCode); 

} 

$iframeCode = '<iframe width="560" height="315" src="http://www.youtube.com/embed/0gugBiEkLwU?rel=0" frameborder="0" allowfullscreen></iframe>'; 

// Returns youtube video id 
echo getYoutubeVideoId($iframeCode); 
Смежные вопросы