2010-01-24 2 views

Antwort

11

Ich würde preg_match() hierfür nicht verwendet werden. Ich denke, parse_url() ist wahrscheinlich eine bessere Wahl. Sie können eine URL-Zeichenfolge eingeben und in alle Unterkomponenten für Sie aufteilen.

Ich weiß nicht, wie die spezifischen Video-URLs für die von Ihnen erwähnten Websites aussehen, aber ich bin sicher, dass Sie einige Identifikationskriterien für jede finden, die Sie mit den Ergebnissen von parse_url() identifizieren können. Als Beispiel ist hier, was der Zusammenbruch eines YouTube-Link aussehen könnte:

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw"); 
print_r($res); 

/* outputs: 
Array (
    [scheme] => http 
    [host] => www.youtube.com 
    [path] => /watch 
    [query] => v=Sv5iEK-IEzw 
) 
*/ 

Sie wahrscheinlich auf dem Hostnamen basiert identifizieren konnte und den Weg in diesem Fall.

+0

Nizza Spitze, aber Vorsicht: jetzt ist es nur Pfad ein nd Abfrage – Cogicero

2
if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) { 
    echo "It's a video"; 
} 
1

Ich weiß nicht, wie Sie diese URL bekommen, aber Sie könnten für „beobachten“ statt www.youtube.com nur überprüfen wollen (da Links Video youtube in der Regel den Weg als Uhr haben? Etwas.

$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw"); 
if (preg_match("/\/watch/" , $res["path"] )){ 
    echo "found video\n "; 
} 
8

$location = 'your url';

if(preg_match('/http:\/\/www\.youtube\.com\/watch\?v=[^&]+/', $location, $vresult)) { 

      $type= 'youtube'; 

     } elseif(preg_match('/http:\/\/(.*?)blip\.tv\/file\/[0-9]+/', $location, $vresult)) { 


      $type= 'bliptv'; 

     } elseif(preg_match('/http:\/\/(.*?)break\.com\/(.*?)\/(.*?)\.html/', $location, $vresult)) { 

      $type= 'break'; 

     } elseif(preg_match('/http:\/\/www\.metacafe\.com\/watch\/(.*?)\/(.*?)\//', $location, $vresult)) { 

      $type= 'metacafe'; 

     } elseif(preg_match('/http:\/\/video\.google\.com\/videoplay\?docid=[^&]+/', $location, $vresult)) { 

      $type= 'google'; 

     } elseif(preg_match('/http:\/\/www\.dailymotion\.com\/video\/+/', $location, $vresult)) { 

      $type= 'dailymotion'; 

     } 
Verwandte Themen