Php 使用Facebook Graph APi的数组中的数组
在过去的两天里,我一直在研究这个问题,一次又一次地搜索。。没有什么。明白我不是这里的专家-这很好!哈哈 我正在尝试获取以下链接中的信息 然后导出为csv 现在我有很多其他的api工具,但这一个让我感到困惑 基本上,需要获取foreach的数据,然后再次运行该数据,并执行“下一步”分页等操作 在这里完全迷路了 我现在的代码在这里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
<?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;
}
}
更多数据($数据);
打印“”;
打印(所有数据);
打印“”;