2014-04-29 2 views
0

Statcounter API에서 json 데이터를 가져 오려고합니다.json_decode() 값을 얻는 중

나는 다음과 같습니다

$query = makeQuery("2292634", "demo_user", "statcounter", "visitor", ""); 
echo $query . "<br>"; 
$response = file_get_contents($query, true); 
$data = json_decode($response, true); 
echo $data['sc_data']['log_visits']; 

나는 쿼리가 정확한지 알고, 나는 $response가 포맷되지 않은 JSON으로 가득 알고있다. 문제는 배열에 액세스하고 값을 꺼내는 것입니다.

여기에 나와있는 포맷되지 않은 json의 첫 번째 몇 줄이 있습니다.

이 링크는 15 분 동안 만 작동하며 원시 json을 보려면 새 링크를 생성 할 수 있습니다.

http://api.statcounter.com/stats/?vn=3&s=visitor&pi=2292634&t=1398791335&u=demo_user&sha1=c6cdfd6c84227801c6ca758c17252712e3f76514

{"@attributes":{"status":"ok"},"sc_data":[{"log_visits":"1","entries_in_visit":"2","entry_t":"2014-04-29 17:57:33","entry_url":"http:\/\/www.guitar-online.com\/en\/","entry_title":"Learn how to play the guitar: tutorials, guitar 

는 분명 내가 올바른 방법으로 배열에 접근하고 있지 않다 ... 그러나 나는 아직 작동하도록 구문을 발견하지 않았습니다!

도움 주셔서 감사합니다.

echo $data['sc_data'][0]['log_visits']; 

이 코드는 위의 첫 번째 요소에 액세스합니다 :

답변

0

는 데이터를 보면, sc_data 당신이 원하는처럼 데이터를 읽기 위해 해당 배열을 반복 할 수 있어야하므로 중첩 된 JSON 객체를 포함하고있는 배열입니다 배열 sc_data 당신은 JSON에서 {"field":['a','b','c']}이있을 때 log_visits

의 값을 출력, 당신은 field[0]'a'에 액세스합니다. 어레이

요소 즉,

  • 문자열
  • 번호
  • 객체
  • 배열
  • 진정한
  • 거짓
유효한 값이 될 수있다

경우 개체이며 다른 배열 요소에 액세스하는 것과 같은 방식으로 해당 개체에 액세스합니다 (인덱스 배열 번호는 "key" => "value"의 연관 배열을 갖지 않습니다)