Php 检查url是否为youtube/vimeo/dailymotion视频链接的预匹配?

Php 检查url是否为youtube/vimeo/dailymotion视频链接的预匹配?,php,regex,preg-match,Php,Regex,Preg Match,检查url是否为youtube/vimeo/或dailymotion的视频链接的最佳preg_匹配语法是什么 如果很难的话,那就检查一下域名吧 谢谢我不会为此使用preg\u match()。我认为这可能是一个更好的选择。您可以向其中传递URL字符串,它将为您将其分解为所有子组件 我不知道你提到的那些站点的具体视频url是什么样子的,但我相信你可以为每个站点提出一些识别标准,你可以使用parse_url()的结果来识别。例如,YouTube链接的崩溃可能是这样的: $res = parse_ur

检查url是否为youtube/vimeo/或dailymotion的视频链接的最佳preg_匹配语法是什么

如果很难的话,那就检查一下域名吧


谢谢

我不会为此使用
preg\u match()
。我认为这可能是一个更好的选择。您可以向其中传递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
)
*/

在本例中,您可能会根据主机名和路径来识别它。

我不知道您是如何获得该url的,但您可能希望检查“watch”而不仅仅是www.youtube.com(因为youtube视频链接的路径通常是watch?之类的)

if (preg_match ("/\b(?:vimeo|youtube|dailymotion)\.com\b/i", $url)) {
   echo "It's a video";
}
$res = parse_url("http://www.youtube.com/watch?v=Sv5iEK-IEzw");
if ( preg_match( "/\/watch/" , $res["path"]  ) ){
    echo "found video\n ";
}

$location='您的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';

      }

结果是真/假还是你需要知道它匹配了哪一个?很好的提示,但要注意:现在它只是路径和查询