【问题标题】:Invalid argument in foreachforeach 中的参数无效
【发布时间】:2012-11-08 16:17:32
【问题描述】:

我正在使用以下方法从 FB 中检索 cmets:

$url = urlencode("http://*****.com/pages/view?id=2153&item=Mens-Collection-Shoes");
$request_url ="https://graph.facebook.com/comments/?ids=" . $url;
$requests = file_get_contents($request_url);

当我print_r($requests); 时,我得到以下信息,但无法弄清楚如何使用 foreach 循环对其进行格式化:

{
    "http:\/\/*****.com\/pages\/view?id=2153&item=Mens-Collection-Shoes": {
        "comments": {
            "data": [{
                "id": "123456",
                    "from": {
                    "name": "Laurelle",
                        "id": "123456"
                },
                    "message": "I love these",
                    "can_remove": false,
                    "created_time": "2012-11-20T10:20:16+0000",
                    "like_count": 0,
                    "user_likes": false
            } {
                "id": "123456",
                    "from": {
                    "name": "Dan",
                        "id": "123456"
                },
                    "message": "I know, just stunning!",
                    "can_remove": false,
                    "created_time": "2012-11-20T14:24:15+0000",
                    "like_count": 0,
                    "user_likes": false
            }],
                "paging": {
                "next": "https:\/\/graph.facebook.com\/*****\/comments?limit=25&offset=25&__after_id=*****"
            }
        }
    }
}

我想得到:

data->from->id
data->from->name
data->message
data->created_time

我试过了:

$fb_response = json_decode($requests);

foreach($fb_response->data as $item){
echo $item->from->id . '<br />';
echo $item->from->name . '<br />';
echo $item->message . '<br />';
echo $item->created_time . '<br /><br />';
}

但没有运气

【问题讨论】:

  • json_decode() 语句后检查$fb_response 的值了吗?
  • 我敢打赌他没有,因为他之前问了完全相同的问题,而我说了完全相同的话
  • @Dale 我确实尝试了您在上一篇文章中所说的内容,但由于它以一种令人困惑的方式编写而关闭,这是我的错 - 正如您从下面的答案中看到的那样,您的答案没有解决我遇到的问题,但是,我感谢您的回复。

标签: php facebook-graph-api foreach json


【解决方案1】:

我想你正在寻找:

$originalUrl = "http://*****.com/pages/view?id=2153&item=Mens-Collection-Shoes";
$url = urlencode($originalUrl);
...
foreach($fb_response->$originalUrl->comments->data as $item) {

data 不是直接在 JSON 文档中的属性名称;它位于http://*****.com/pages/view?id=2153&amp;item=Mens-Collection-Shoescomments 之下。

【讨论】:

  • 该死!当然.. 有时只见树木不见森林!非常感谢,不胜感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2011-05-17
相关资源
最近更新 更多