2016-05-25 6 views
1

Ich brauche eine Regex oder PHP-Funktion preg_match, die youtube/vimeo URL und den Video-Provider/Domain-Namen wie (vimeo/youtube) aus einer Zeichenfolge, die eine Video-URL enthält.Regex-Muster zum Extrahieren von Domain-Namen, Video-URL und Video-ID aus einer Zeichenfolge mit youtube/vimeo URL mit PHP

Und von der extrahierten Video-URL der Zeichenfolge, muss ich die genaue Video-ID finden.

Die Regex sollte Video-ID aus der unten url grafisch darzustellen, auch

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

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

Dank, ich an der Lösung arbeite. Ich werde als Antwort posten, wenn ich es finde.

+1

404 Frage nicht –

+0

@VigneshChinnaiyan, das sieht aus wie eine Antwort gefunden. Was ist die Frage? – jkdev

+0

@jkdev Entschuldigung dafür, dass ich meine Antwort wie eine Frage gepostet habe, ich bezog mich auf stackoverflow und andere Webseiten für diese genaue Antwort. Ich konnte keine Antwort finden, also habe ich gerade an einer Lösung gearbeitet. Um anderen zu helfen, die das als Zweifel bekommen haben, können Sie sich darauf beziehen. Deshalb habe ich als neue Frage gepostet. –

Antwort

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"; 

// Funktion Video-URL aus string

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; 

} 

// ruft Funktion, gibt die youtube oder vimeo url aus einem String zurück.

$check_extract = extract($sample_url); 

// Funktion, um den Video-Provider-Namen zu finden.

function videoType($url) { 

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

    return 'youtube'; 

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

    return 'vimeo'; 

} 
else 
{ 

    return 'unknown'; 

} 

} 

// ruft Funktion hat url als Parameter extrahiert.

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

// Die folgende Regex wird das Video-ID von oben extrahiert YouTube-URL extrahieren.

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]; 

} 

// Dieses Video-ID von youtube/vimeo bekommen.

$video_id = $id; 

enter image description here

Verwandte Themen