2015-04-08 59 views
0

我想将Facebook墙提要提取到我的网页中,但是 尽管遵循了过程,但我仍收到了典型错误。提供给foreach()的无效参数,同时在Facebook中提供数据

警告:的foreach()在/home/u500024704/public_html/fb.php供给线路18上

无效参数我粘贴在PHP文件中的代码一个div包装和其上传到服务器

代码如下。

<?php 
$page_id = 'fbpage'; 
$access_token = 'app_id'; 
$a = 0; 
//Get the JSON 
$json_object = @file_get_contents('https://graph.facebook.com/' . $page_id . 
'/posts?access_token=' . $access_token); 
//Interpret data 
$fbdata = json_decode($json_object); 

foreach ($fbdata->data as $post) 
{ 
$likecount = $post->likes->data; 
$posts .= '<div width="500"><div width="500" style="border: solid; border-color: #82878e; border-width: 1px;"><h4><a href="' . $post->link .'"><img style="float: left; margin: 10;" height ="100" src="' . $post->picture . '" /></a>'; 
$posts .= '<a href="'. $post->link .'">' . $post->message . '</a></h4>'; 
$posts .= '<p>' . $post->description . '</p>'; 
foreach ($likecount as $likes){ 
$a++; 
} 
$posts .= '<p>' . $a . ' people like this post </p> 
$a = 0; 
<p>&nbsp;</p> 
</div> 
'; 
} 
echo ($posts); 
?> 

三江源提前

+0

做$ likecount的的var_dump并检查它是否是一个阵列。 – rahulinaction

+0

谢谢你的回复。但我对PHP非常陌生,所以你必须帮我编写代码。我以两种可能的方式做了同样的事情 再次感谢您提前 –

+0

您应该检查数组的存在性,即确保在使用foreach循环访问数组之前数组不是空的。您可以检查 'if($ array)'或'$ array?',以确保它在循环之前是非空的 –

回答

0

它始终是一个很好的做法,以确保数组非空,通过它循环之前

if ($posts) 
{ 
    foreach ($posts as $post) 
    { 
    ... 
    } 
}