0

ある場所 (この場合はアトランタ) から最新の Twitter トレンドを解析しようとしています。

これが私のコードです:

<html>
  <head></head>
  <body>
    <?php
     $init = 'http://api.twitter.com/1/trends/2357024.json?count=1&callback=?&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);
     foreach ($obj[0]->trends as $trend) {
     echo "<li class=\"atlanta\">".$trend->name."</li>";
}?>
  </body>
</html>

望ましい結果は<li class="atlanta">Whatever The Trend Is</li>

約 30% の確率で動作しますが、残りの 70% で次のエラーが発生します。

致命的なエラー: タイプ stdClass のオブジェクトを配列として使用できません...

いくつかのグーグルの後、objは配列でなければならないようです...私が見つけた唯一の答えは、次のように$obj行をtrueに変更することです:

$obj = json_decode($result, true);

しかし、それは単に私にこのエラーを与えます:

警告: foreach() に無効な引数が指定されました...

コードを「配列」に変更して、100% の時間で動作するようにする方法を知っている人はいますか?

4

1 に答える 1

0

@ケン: やってみる

$obj = json_decode($result, true);
if (is_array($obj)) { 
    foreach ($obj[0]->trends as $trend) {
        echo "<li class=\"atlanta\">" . $trend->name . "</li>";
    }
} else {
   // failure case here
}
于 2010-12-13T21:31:10.950 に答える