1

ユーザーが記事を開く前に記事のコメント数を確認できるように、記事の下に自動時間、日付、コメントのフィールドを表示して、自分のサイトの記事のリストを表示しようとしています。

コメントはFacebookとIMからのもので、記事ごとに次のJSONコードを返すグラフAPIを使用しています。これからコメントの総数を取得するにはどうすればよいですか?ありがとう

json_decodeを試しましたが、取得している配列はすべてカウントゼロです。

{
   "http://www.withinzambia.com/technology-and-it/your-modem-isnt-that-fast.html": {
      "comments": {
         "data": [
            {
               "id": "10151004341202332_23086817",
               "from": {
                  "name": "Cindi Mutale",
                  "id": "1045450015732187"
               },
               "message": "Glad someone finally pointed this out.",
               "can_remove": false,
               "created_time": "2012-07-02T19:46:58+0000",
               "like_count": 0,
               "user_likes": false
            },
            {
               "id": "10151002332_23094740",
               "from": {
                  "name": "Chanda Mike",
                  "id": "1000034452054679"
               },
               "message": "my modem is 7mbps, so that's not 7MB per second?",
               "can_remove": false,
               "created_time": "2012-07-03T13:51:24+0000",
               "like_count": 0,
               "user_likes": false
            },
            {
               "id": "10151004341202332_23094782",
               "from": {
                  "name": "Precious Chulu",
                  "id": "100242343243281187"
               },
               "message": "The max for the modem in the picture is 7mbps, which is actually about 900kb when you divide by 8, so you will never download at more than 1mb per second with these modems even when MTN or Airtel upgrades the network.",
               "can_remove": false,
               "created_time": "2012-07-03T13:57:56+0000",
               "like_count": 0,
               "user_likes": false
            }
         ],
         "paging": {
            "next": "https://graph.facebook.com/10151004341202332/comments?value=1&redirect=1&limit=25&offset=25&__after_id=10151004341202332_23094782"
         }
      }
   }
}
4

2 に答える 2

1
<?php
  ...
  $count = 0;
  $array = json_decode($input, true);
  foreach($array AS $website) {
    $count += count($website['comments']['data']);
  }
  ...
?>

$countが答えです。

ボーナス:)

于 2012-07-03T15:19:32.173 に答える
0
$jsonArr = ' ..your JSON array.. ';

$decodedArr = json_decode($jsonArr);

$num_comments = count($decodedArr->{'http://www.withinzambia.com/technology-and-it/your-modem-isnt-that-fast.html'}->comments->data);

echo $num_comments;

テストされ、動作します。ここで行ったように、JSONを文字列にロードする場合は、一重引用符をエスケープする必要があることに注意してください。

于 2012-07-03T15:23:06.980 に答える