首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Vimeo url获取vimeo id的简单方法

从Vimeo url获取vimeo id的简单方法
EN

Stack Overflow用户
提问于 2012-05-08 04:51:00
回答 8查看 54.3K关注 0票数 32

我正在尝试从vimeo URL获取id。有比这更简单的方法吗?我看到的所有vimeo视频urls都是:

https://vimeo.com/29474908

https://vimeo.com/38648446

代码语言:javascript
复制
// VIMEO


$vimeo = $_POST['vimeo'];

function getVimeoInfo($vimeo)
{
    $url = parse_url($vimeo);
    if($url['host'] !== 'vimeo.com' &&
            $url['host'] !== 'www.vimeo.com')
        return false;
   if (preg_match('~^http://(?:www\.)?vimeo\.com/(?:clip:)?(\d+)~', $vimeo, $match)) 
   {
       $id = $match[1];
   }
   else
   {
       $id = substr($link,10,strlen($link));
   }

   if (!function_exists('curl_init')) die('CURL is not installed!');
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php");
   curl_setopt($ch, CURLOPT_HEADER, 0);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_TIMEOUT, 10);
   $output = unserialize(curl_exec($ch));
   $output = $output[0];
   curl_close($ch);
   return $output['id'];
}

$vimeo_id = getVimeoInfo($vimeo);
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-05-08 04:56:08

我认为使用parse_url()是最好的选择:

代码语言:javascript
复制
$vimeo = 'https://vimeo.com/29474908';

echo (int) substr(parse_url($vimeo, PHP_URL_PATH), 1);
票数 38
EN

Stack Overflow用户

发布于 2013-05-31 00:12:01

有很多vimeo URL是有效的。下面是几个例子

所有有效的URL:

代码语言:javascript
复制
http://vimeo.com/6701902
http://vimeo.com/670190233
http://player.vimeo.com/video/67019023
http://player.vimeo.com/video/6701902
http://player.vimeo.com/video/67019022?title=0&byline=0&portrait=0
http://player.vimeo.com/video/6719022?title=0&byline=0&portrait=0
http://vimeo.com/channels/vimeogirls/6701902
http://vimeo.com/channels/vimeogirls/67019023
http://vimeo.com/channels/staffpicks/67019026
http://vimeo.com/15414122
http://vimeo.com/channels/vimeogirls/66882931

所有无效URL:

代码语言:javascript
复制
http://vimeo.com/videoschool
http://vimeo.com/videoschool/archive/behind_the_scenes
http://vimeo.com/forums/screening_room
http://vimeo.com/forums/screening_room/topic:42708

我写了这个java正则表达式,它捕获所有上述有效的URL,并拒绝无效的URL。我不确定他们的vimeo是否有更多有效的URL。

代码语言:javascript
复制
(https?://)?(www.)?(player.)?vimeo.com/([a-z]*/)*([0-9]{6,11})[?]?.*

希望这能帮到你。

票数 48
EN

Stack Overflow用户

发布于 2015-04-25 09:45:11

对于那些希望看到完全使用PHP实现的代码的人,我使用的是由user2200660提供的正则表达式,由Morgan Delaney为PHP格式化,如下所示:

代码语言:javascript
复制
$vimeo = 'http://player.vimeo.com/video/67019023';

if(preg_match("/(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([0-9]{6,11})[?]?.*/", $vimeo, $output_array)) {
    echo "Vimeo ID: $output_array[5]";
}

//outputs: Vimeo ID: 67019023
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10488943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档