2010-09-28 42 views
1

IM从JSON响应故障解码Twitter的地方趋势JSON与有麻烦的PHP

$init = 'http://api.twitter.com/1/trends/1.json'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$init); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$result = curl_exec($ch); 
curl_close($ch); 
$obj = json_decode($result); 
foreach ($obj->trends as $trend) { 
    print $trend->query; 
    print $trend->name; 
} 

回答

1

提取趋势名称和搜索查询,如果你做print_r($obj)你会看到的趋势是在一个子阵列

Array 
(
    [0] => stdClass Object 
     (
      [as_of] => 2010-09-28T01:32:13Z 
      [trends] => Array 
       (
        [0] => stdClass Object 
         (
          [query] => BlackBerry+PlayBook 
          [promoted_content] => 
          [url] => http://search.twitter.com/search?q=BlackBerry+PlayBook 
          [name] => BlackBerry PlayBook 
          [events] => 
         ) 
....... 

,所以你必须使用此:

... 
foreach ($obj[0]->trends as $trend) { 
    print $trend->query; 
    print $trend->name; 
} 
+0

非常感谢你:) – bsym 2010-09-28 01:36:48

+0

没有upvote或答案? – Galen 2010-09-28 01:39:05

0

试试这个

<?php 
$init = 'http://api.twitter.com/1/trends/1.json'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$init); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$result = curl_exec($ch); 
curl_close($ch); 
$obj = json_decode($result, true); 


foreach ($obj[0]['trends'] as $trend) { 
    print $trend['query']; 
    echo "<br>"; 
    print $trend['name']; 
    echo "<hr>"; 
} 

?>