Каков наилучший синтаксис 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 "; }