こんなんにつまづくなんて、ほんとまだまだ修行が足りませんな・・・。
GETしたjsonにリンク情報などおまけ情報を含ませるためには、'include_entities'=>1を指定します。
コード
$searchUrl = 'http://search.twitter.com/search.json'; $searchParams = http_build_query(array( 'q'=>'検索ワード', 'locale'=>'ja', 'page'=>1, 'result_type'=>'recent', 'rpp'=>100, 'include_entities'=>1 // これがないとデータ取れない )); $searchResults = json_decode(file_get_contents($searchUrl.'?'.$searchParams)); if (isset($searchResults)) { $results = $searchResults->results; for ($i = 0; $i < count($results); $i++) { echo ($results[$i]->entities->urls[0]->url); echo ($results[$i]->entities->urls[0]->expanded_url); echo ($results[$i]->entities->urls[0]->display_url); echo ($results[$i]->entities->urls[0]->indices[0]).($results[$i]->entities->urls[0]->indices[1]); } }
urls[0]をつけないと、一気にNullが返ってくるようになって、ああでもないこうでもないと2時間くらい悩むハメになります。
こんな簡単なことは、経験者のみなさまは書いてくれません!
困ったもんだ!