Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Facebook Graph APi的数组中的数组_Php_Arrays_Facebook_Facebook Graph Api_Csv - Fatal编程技术网

Php 使用Facebook Graph APi的数组中的数组

Php 使用Facebook Graph APi的数组中的数组,php,arrays,facebook,facebook-graph-api,csv,Php,Arrays,Facebook,Facebook Graph Api,Csv,在过去的两天里,我一直在研究这个问题,一次又一次地搜索。。没有什么。明白我不是这里的专家-这很好!哈哈 我正在尝试获取以下链接中的信息 然后导出为csv 现在我有很多其他的api工具,但这一个让我感到困惑 基本上,需要获取foreach的数据,然后再次运行该数据,并执行“下一步”分页等操作 在这里完全迷路了 我现在的代码在这里 <?php //Export and Download the Liker Data from each comment here .. $id = $_GET

在过去的两天里,我一直在研究这个问题,一次又一次地搜索。。没有什么。明白我不是这里的专家-这很好!哈哈

我正在尝试获取以下链接中的信息

然后导出为csv

现在我有很多其他的api工具,但这一个让我感到困惑

基本上,需要获取foreach的数据,然后再次运行该数据,并执行“下一步”分页等操作

在这里完全迷路了

我现在的代码在这里

<?php
//Export and Download the Liker Data from each comment here .. 
$id = $_GET['data'];
$commentor = $_GET['commentor'];


$toget = 'https://graph.facebook.com/'.$id.'/comments/?fields=likes.fields(id,username,name,profile_type)';
$data = @file_get_contents($toget);


$data = json_decode($data,true);
if($data['data'] == FALSE){
    echo "gay!";
    die;
}

$alldata = array();

function moredata($data){
    global $alldata;
        foreach ($data["data"] as $eachdata){
            $onedata['id'] = $eachdata['id'];
                foreach ($eachdata["likes"] as $ex){
                $onedata['uid'] = $$ex['data'][0]['id'];
                $onedata['name'] = $ex['data'][0]['name'];
                $onedata['username'] = $ex['data'][0]['username'];
                $onedata['profile_type'] = $ex['data'][0]['profile_type'];
                //$onedata['link'] = $eachdata['link'];
                }
            $alldata[] = $onedata;
            $onedata = array();
        }

        if (array_key_exists('next', $data['paging'])) {
            $nextpagelink = $data['paging']['next'];
            $nextdata = json_decode(file_get_contents($nextpagelink),true);
            moredata($nextdata);
        }


}

moredata($data);

这有点棘手,但可以通过嵌套递归解决这个问题

我已经尝试了你的代码,做了一些修改,效果很好。检查下面的代码

$alldata    = array();
$arrlikedata = array();

function moredata($data){
    global $alldata;
    global $arrlikedata;

    foreach ($data["data"] as $eachdata)
    {
        $onedata['id'] = $eachdata['id'];
        if(isset($eachdata["likes"])){
            $onedata['likes'] =  more_like_data($eachdata["likes"]);
        }
        else{
            $onedata['likes'] = array();
        }

        $alldata[] = $onedata;
        $arrlikedata = array();
    }

    if (array_key_exists('next', $data['paging'])) {
        $nextpagelink = $data['paging']['next'];
        $nextdata = json_decode(file_get_contents($nextpagelink),true);
        moredata($nextdata);
    }  
}

function more_like_data($likedata)
{   global $alldata;
    global $arrlikedata;

    if(isset($likedata["data"])){
        foreach ($likedata["data"] as $ex){
            if(isset($ex)){               
                $onedata1['uid'] = $ex['id'];
                $onedata1['name'] = $ex['name'];
                $onedata1['username'] = (isset($ex['username']))?$ex['username']:'';
                $onedata1['profile_type'] = $ex['profile_type'];                
                $arrlikedata[] = $onedata1;
                $onedata1 = array();
            }
        }
    }

    if(isset($likedata['paging'])){
         if (array_key_exists('next', $likedata['paging'])) 
         {   
            $nextpagelink = $likedata['paging']['next'];
            $nextlikedata = json_decode(file_get_contents($nextpagelink),true);
            return  more_like_data($nextlikedata);  
         }
         else{
             return    $arrlikedata;  
         }
    }
    else{    
        return  $arrlikedata;
    }
}
moredata($data);

print "<pre>";
print_r($alldata);
print "</pre>";
$alldata=array();
$arrlikedata=array();
函数moredata($data){
全球$alldata;
全球$arrlikedata;
foreach($data[“data”]作为$eachdata)
{
$onedata['id']=$eachdata['id'];
如果(isset($eachdata[“likes”])){
$onedata['likes']=更相似的数据($eachdata['likes');
}
否则{
$onedata['likes']=array();
}
$alldata[]=$onedata;
$arrlikedata=array();
}
如果(数组\键\存在('next',$data['paging'])){
$NEXTPGELINK=$data['paging']['next'];
$nextdata=json\u decode(file\u get\u contents($nextpagelink),true);
更多数据($nextdata);
}  
}
函数更像数据($likedata)
{全球$alldata;
全球$arrlikedata;
if(isset($likedata[“数据”])){
foreach($likedata[“数据”]作为$ex){
if(isset($ex)){
$onedata1['uid']=$ex['id'];
$onedata1['name']=$ex['name'];
$onedata1['username']=(isset($ex['username'])?$ex['username']:'';
$onedata1['profile\u type']=$ex['profile\u type'];
$arrlikedata[]=$onedata1;
$onedata1=array();
}
}
}
如果(isset($likedata['paging'])){
如果(数组\键\存在('next',$likedata['paging']))
{   
$NEXTPGELINK=$likedata['paging']['next'];
$nextlikedata=json\u decode(文件获取内容($nextpagelink),true);
返回更相似的数据($nextlikedata);
}
否则{
返回$arrlikedata;
}
}
否则{
返回$arrlikedata;
}
}
更多数据($数据);
打印“”;
打印(所有数据);
打印“”;