2016-05-25 10 views
1

Мне нужна функция regex или php preg_match, которая должна извлекать URL-адрес youtube/vimeo, а также имя поставщика видео/имя домена (vimeo/youtube) из строки, содержащей URL-адрес видео.Шаблон регулярного выражения для извлечения имени домена, URL-адреса видео и видео из строки, содержащей URL-адрес youtube/vimeo с PHP.

И из извлеченного видеоролика строки, мне нужно найти точный идентификатор видео.

Регулярное выражение должно график ID видео из ниже URL также,

  1. Youtube https://youtube.googleapis.com/v/jGyZDgpv_Hk

  2. Vimeo https://vimeo.com/channels/staffpicks/167414855

Спасибо, я работаю над решением. Я отправлю в качестве ответа, если найду его.

+1

404 вопрос не найден –

+0

@VigneshChinnaiyan, это выглядит как ответ. Что за вопрос? – jkdev

+0

@jkdev Извините, что разместил свой ответ как вопрос, я ссылался на stackoverflow и другие веб-сайты для получения точного ответа. Я не смог найти ответ, поэтому я просто работал над решением. Чтобы помочь другим, кто получил это как сомнение, можно сослаться на это. Вот почему я опубликовал новый вопрос. –

ответ

1
$sample_text = "Cieker is the largest talentize social and professional networking website, you can view it on https://www.cieker.com and the about video is on https://www.youtube.com/watch?v=jGyZDgpv_Hk"; 

// Функция для возврата URL видео из строки

function extract($html) 
    { 

    $regex = '/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|channels\/(?:\w+\/)|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/'; 

    preg_match_all($regex, $html, $match); 

    $matched = array_unique($match[0]); 

    usort($matched, function($a, $b) 

    { 

     return strlen($b) - strlen($a); 

    }); 

    return $matched; 

} 

// вызов функции, возвращает или Vimeo юность URL из строки.

$check_extract = extract($sample_url); 

// функция, чтобы найти имя провайдера видео.

function videoType($url) { 

if (strpos($url, 'youtu') > 0) 
{ 

    return 'youtube'; 

} 
else if (strpos($url, 'vimeo') > 0) 
{ 

    return 'vimeo'; 

} 
else 
{ 

    return 'unknown'; 

} 

} 

// вызов функции, добыл URL в качестве параметра.

$provider = videoType($check_extract[0]); 

// Следующий регулярное выражение будет извлекать идентификатор видео из выше добытого YouTube URL.

if($provider=="youtube") 

{ 
preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/",$check_extract[0], $matches);?> 
$id =$matches[1]; 

} 

else if($provider=="vimeo") 

{ 

preg_match("/(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/",$check_extract[0], $output_array);?> 

$id =$output_array[5]; 

} 

// это будет получить идентификатор видео YouTube/Vimeo.

$video_id = $id; 

enter image description here