Любой preg_match, чтобы проверить, является ли URL-ссылка для youtube / vimeo / dailymotion?

Каков наилучший синтаксис preg_match, чтобы проверить, является ли url ссылкой на видео youtube / vimeo / или dailymotion?

может быть, если это сложно, просто проверьте доменное имя.

благодаря

Для этого я бы не использовал preg_match() . Я думаю, что parse_url () , вероятно, лучший выбор. Вы можете передать в него строку URL, и она будет разбита на все подкомпоненты для вас.

Я не знаю, как выглядят конкретные URL-адреса видео для упомянутых вами сайтов, но я уверен, что вы могли бы найти некоторые критерии идентификации для каждого из них, которые вы могли бы использовать с результатами parse_url() для идентификации. В качестве примера, вот что может выглядеть разбивка ссылки на YouTube:

 $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 ) */ 

Вероятно, вы можете определить его на основе имени хоста и пути в этом случае.

$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'; } 
 if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) { echo "It's a video"; } 

Я не знаю, как вы получите этот URL-адрес, но вы можете проверить «смотреть», а не просто на http://www.youtube.com (так как видео-ссылки YouTube обычно имеют путь как смотреть?

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