Twitter趋势PHP

时间:2011-02-23 17:47:13

标签: php json api twitter

我正在尝试使用http://api.twitter.com/1/trends/current.json?exclude=hashtags但是我遇到了一些麻烦。

所以,我正在尝试使用:

  <?php
$init = 'http://api.twitter.com/1/trends/current.json?exclude=hashtags';
$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>";
}

?>

我收到此错误:

注意:未定义的偏移量:第11行的\ index.php中的0

警告:第11行的foreach()\ index.php提供的参数无效

2 个答案:

答案 0 :(得分:2)

你读错了JSON。您需要执行以下操作:

foreach ($obj['trends']['2011-02-23 18:00:00'] as $trend) {
    print $trend['query'];
    echo "<br>";
    print $trend['name'];
    echo "<hr>";
}

答案 1 :(得分:0)

如果我没错?

$obj = json_decode($result, true);

会生成一个数组,而不是一个对象。其次使用twitter api就像:

<?php
function get_trends($woeid){
    return json_decode(file_get_contents("http://api.twitter.com/1/trends/".$woeid.".json?exclude=hashtags", true), false); 
}
$data = get_trends(23424848); //23424848 is woeid for India...
$trends = $data[0]->trends;
echo "<ul>";
if(!empty($trends)){
    foreach($trends as $trend){
        echo '<li><a href="'.$trend->url.'" target="_blank">'.$trend->name.'</a></li>';
    }
}
echo "</ul>";
?>