如何从给定的Facebook URL获取视频ID?

时间:2014-08-10 18:13:35

标签: php

任何想法我怎样才能获得视频的脸书ID。首先,我有这个,但它总是不起作用,因为有时候有一些东西id。例如。 $ url = https://www.facebook.com/photo.php?v=747864965250852&set=vb.530843830286301&type=2&theater

$suburl = substr("$url", -15);

现在我有了它,并且效果更好,但有时候有人不会添加https或类似内容。

$suburl = substr ("$url", 37);

所以任何想法如何获得id(15个字符)。您必须考虑该链接并不总是相同。最好的方法是在v =之后我会得到15个字符。

2 个答案:

答案 0 :(得分:2)

使用parse_url从url中分割部分:

<?php

$url = "https://www.facebook.com/photo.php?v=747864965250852&set=vb.530843830286301&type=2&theater";
$query = parse_url($url, PHP_URL_QUERY);
parse_str($query, $vars);

var_dump($vars);

输出

array (size=4)
  'v' => string '747864965250852' (length=15)
  'set' => string 'vb.530843830286301' (length=18)
  'type' => string '2' (length=1)
  'theater' => string '' (length=0)

有关此功能的更多信息

答案 1 :(得分:0)

这是更好的方式:

/*
* case1: https://www.facebook.com/video.php?v=10153231379946729
* case2: https://www.facebook.com/facebook/videos/10153231379946729
* case3: https://www.facebook.com/facebook/posts/10153231379946729
*/
/* case 1 */
$parts = parse_url($url);
if(isset($parts['query'])){
    parse_str($parts['query'], $qs);
    if(isset($qs['v'])){
        return $qs['v'];
    }
}
/*case 2 and 3*/
if(isset($parts['path'])){
    $path = explode('/', trim($parts['path'], '/'));
    return $path[count($path)-1];
}