2013-04-15 3 views
1

내가 작성한 코드는 두 가지 작업을 수행했습니다. 1- 트위터 사용자의 최근 게시물 - 특정 키워드를 검색합니다. 첫 번째 부분, 그것은 완벽하게 작동하지만이 오류 메시지가 덤핑에 의해 '검색'옵션의 경우에는 실패json 응답에서 PHP의 정의되지 않은 오프셋 오류

PHP 공지 사항을 : 오프셋 정의되지 않은 :

나는이 형식의 코드를 실행합니다 :

$result = file_get_contents("http://search.twitter.com/search.json?q=$argv[2]&rpp=$argv[3]&include_entities=true&result_type=mixed"); 
    $decoded = json_decode($result,true); 
    for($j=0; $j<$argv[3]; $j++) 
    { 

    echo ($decoded[$j]['text']); 



    } 
+1

, 가장 좋은'인 print_r 것() ; '어떤 배열을 사용하든 그들이 무엇을 가정 하는지를 확인하십시오 – Breezer

+0

아마도 배열에는 아무 것도 들어 있지 않습니다. 'isset' 또는 무엇인가로 확인해야합니다. 오류는 정확히 무엇입니까? – edwardmp

답변

3

같은 것을보십시오. $decoded[$j]['text']을 통해 데이터에 액세스 할 수 없다는 이유는 응답에 존재하지 않기 때문입니다.

은 무엇 당신이 할 말은있다 : 나는 그것을 확인했는데 그가 잘 작동이 나타납니다

$decoded[results][$j]['text'] 

.

응답 (print_r 형식)에서 발췌 한 것으로, 왜 그런지 알 수 있습니다. 오류가 UR 아마 설정되어 었소 배열을 사용하려고하는 것을 생각 무엇을 의미하는지가 늘 실행의 코드를 중지 단지 통지입니다

Array (
    [completed_in] => 0.015 
    [max_id] => 322818055665225728 
    [max_id_str] => 322818055665225728 
    [page] => 1 
    [query] => testsearch 
    [refresh_url] => ?since_id=322818055665225728&q=testsearch&result_type=mixed&include_entities=1 
    [results] => Array 
    (
     [0] => Array 
     (
      [created_at] => Fri, 12 Apr 2013 21:06:36 +0000 
      [entities] => Array 
+0

당신을 환영합니다! – edwardmp

0

사용자 입력이 '10'인 경우 : 여기

$ php script.php search keyword number 

는 코드 그러나 쿼리는 9 개의 결과 만 반환합니다. for 루프의 10 번째 반복은 해당 통지를 반환합니다 ($ decoded [9]가 존재하지 않음).

은 아마도 액세스하려는 배열의 형식과 일치하지 않습니다, 나는 트위터 응답을 확인했습니다이

$limit = $argv[3]; 

if (count($decoded) < $limit) 
{ 
    $limit = count($decoded); 
} 

for ($j = 0; $j < $limit; $j++) 
{ 
... 
} 
+0

아마도 사실이지만 문제의 근본 원인은 아닙니다. 그는 이런 식으로 뭔가를 구현해야합니다. – edwardmp

관련 문제