什么是最好的preg_match语法来检查一个url是否是youtube/vimeo /或dailymotion的视频链接?任何preg_match来检查一个url是否是youtube/vimeo/dailymotion视频链接?
也许如果它很难,那么只是检查域名。
感谢
什么是最好的preg_match语法来检查一个url是否是youtube/vimeo /或dailymotion的视频链接?任何preg_match来检查一个url是否是youtube/vimeo/dailymotion视频链接?
也许如果它很难,那么只是检查域名。
感谢
我不会用preg_match()
这一点。我认为parse_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
)
*/
你也许可以识别它基于主机名,在这种情况下的路径。
尼斯提示,但要注意:现在它只是路径nd查询 – Cogicero 2013-02-25 12:19:41
if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) {
echo "It's a video";
}
我不知道你是怎么拿到的网址,但你可能要检查“监视”,而不是仅仅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 ";
}
$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';
}
是结果只是真/假或你需要知道它匹配 – 2010-01-25 00:06:04
只是如果这是真的还是假的 – Ryan 2010-01-25 00:21:41