将数组中的对象保存回JSON

时间:2014-03-04 21:11:59

标签: php arrays json caching instagram

我正在尝试根据作为图片标题一部分的评论分数过滤掉一些不需要的Instagram图片。

我正在使用Instagram PHP API by cosenary并且我有数据,并且我能够使用正确的语法过滤掉条目以获得评分(* / 10)。

问题是试图将对象恢复为json形式,以便我可以缓存它,所以我不必继续向Instagram发出一百万个请求。

我正在尝试将对象存储在数组中,然后将数组编码回json,但我一直在收到错误

 Trying to get property of non-object in /Users/***/Sites/instagram/index.php on line 16

这是我到目前为止所拥有的。

<?php 

require_once('instagram.class.php');

$app_key = '<removed>';
$instagram = new Instagram($app_key);
$media = $instagram->getTagMedia('kittens');
$pattern = '/\d+\/+10/';
$fulldata = array();

if($media) {
    do {
        foreach ($media->data as $entry) {

            if(is_object($entry) && preg_match($pattern, $entry->caption->text)) {
                $fulldata[] = $entry;
            }
        }
    } while ($media = $instagram->pagination($media));
}

?>

<pre>
    <? echo json_encode($fulldata); ?>
</pre>

我不确定is_object($entry)是否做得太多。

1 个答案:

答案 0 :(得分:1)

这应该有效

<?php 

require_once('instagram.php');

$app_key = '';
$instagram = new Instagram($app_key);
$media = $instagram->getTagMedia('cats');
$pattern = '/\d+\/+10/';
$fulldata = array();
if($media) {
  do {
    foreach ($media->data as $entry) {
      $text = $entry->caption->text;

      if(preg_match($pattern, $text)) {
        $fulldata[] = $entry;
      }
    }
  } while ($media = $instagram->pagination($media));
}

?>

<pre>
    <? echo json_encode($fulldata); ?>
</pre>