2014-03-04 5 views
1

사진 캡션의 일부인 리뷰 점수에 따라 원치 않는 Instagram 이미지를 필터링하려고합니다.JSON에 배열의 객체 저장

저는 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)이 많은지 확실하지 않습니다.

+0

아마도'$ 초급> caption'이 객체가 아닌 일을해야합니까? 'var_dump ($ entry)' – AbraCadaver

+0

데이터를 성공적으로 필터링하고 있습니다. VAR 덤핑 $ 항목은 내가 필요한 것을 제공합니다. '$ fulldata' 배열을 json으로 다시 변환합니다. –

+0

당신은'var_dump'를 게시 할 필요가 있습니다. 에러는'$ entry-> caption-> text', JSON의 echo입니다. 아무도 그것 없이는 도울 수 없다. – AbraCadaver

답변

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>