PHP Regex Facebook视频ID

时间:2016-05-01 03:22:15

标签: php facebook facebook-graph-api

我的facebook下面有你的网址(这些都是facebook视频),我想得到它的身份。

  1. https://mbasic.facebook.com/TrendingInPhilippinesOfficial/videos/1722369168023859/
  2. https://mbasic.facebook.com/story.php?story_fbid=1722369168023859&id=1388211471439632
  3. 输出必须是:

    1. 1388211471439632
    2. 1388211471439632
    

    我用这个正则表达式来获取ID。

    preg_match("~/videos/(?:t\.\d+/)?(\d+)~i", $_GET['url'], $matches);
    echo $matches[1];
    

    它适用于#1,但在#2它无效。

    任何解决方案?

2 个答案:

答案 0 :(得分:1)

我猜你想要一个正则表达式用于这两个链接?

?

请注意正则表达式末尾的/,这样就可以解析它而不会跟踪&$matches。如果您只想解析同时存在的ID,请从正则表达式中删除问号。

array(5) { [0]=> string(24) "videos/1722369168023859/" [1]=> string(6) "videos" [2]=> string(1) "/" [3]=> string(16) "1722369168023859" [4]=> string(1) "/" } 的var_dump将是:

$matches2

array(5) { [0]=> string(28) "story_fbid=1722369168023859&" [1]=> string(10) "story_fbid" [2]=> string(1) "=" [3]=> string(16) "1722369168023859" [4]=> string(1) "&" } 的var_dump将是:

<?php
class AwesomeModel extends CI_Model 
{
   publif function do_work($param, $anotherParam)
   {
     //code here
   }
}

Then your controller:

<?php
class AwesomeController extends CI_Controller
{
    public function __construct()
    {
        /*
         * load in constructor so not need to recall every time you want use it
         * second parameter is model renaming (optional)
         */
        $this->load->model('AwesomeModel', 'awe');                                               
    }

    public function pass_data()
    {
        $this->awe->do_work($param1, $param2);
    }
?>

答案 1 :(得分:0)

要从URL获取参数,可以使用parse_url和parse_str函数。

parse_str(parse_url($link2)['query'], $array);
print_r($array);

输出

Array
(
    [story_fbid] => 1722369168023859
    [id] => 1388211471439632
)