php
  • arrays
  • 2011-07-18 1 views 1 likes 
    1

    私はtwitter APIを使ってすべてのツイートを取得しています。しかし、私は "expanded_url"と "hashtag"プロパティを取得することはできません。この特定のAPIのドキュメントはhttps://dev.twitter.com/docs/api/1/get/statuses/user_timelineにあります。私のコードは次の通りです:どのように私は必要なものを得るためにこの配列をループすることができますか?

    $retweets = 'http://api.twitter.com/1/statuses/user_timeline.json? include_entities=true&include_rts=true&screen_name=callmedan'; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $retweets); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $curlout = curl_exec($ch); 
    curl_close($ch); 
    $response = json_decode($curlout, true); 
    $tweet_number = count($response); 
    
    for($i = 0;$i < $tweet_number;$i++) 
    { 
        $url = $response['entities']['urls']; 
        $hashtag = $response['entities']['hashtags']; 
        $text = $response[$i]['text']; 
    
        echo "$url <br />"; 
        echo "$hashtag <br />"; 
        echo "$text <br />"; 
        echo "<br /><br />"; 
    
    } 
    

    「通知:未定義インデックス:エンティティ」というエラーメッセージが表示されます。

    提案がありますか?あなたがすべき

    +0

    'エコーのvar_dump($応答);'、あなたがそこにあると思いデータを(インデックスが配列に存在することを確認してください)アクセスしていることを確認してください。また、取得しようとしているものを視覚的に確認するための良い方法です。 –

    答えて

    0

    ($応答が配列である場合は、適切なインデックスにアクセスする必要があります):

    $url = $response[$i]['entities']['urls']; 
    $hashtag = $response[$i]['entities']['hashtags']; 
    $text = $response[$i]['text']; 
    

    そうでない場合のforeachを使用します。

    foreach ($response as $r){ 
        $url = $r['entities']['urls']; 
        $hashtag = $r['entities']['hashtags']; 
        $text = $r['text']; 
    
    0

    あなたは整数インクリメントループ用を使用していますインデックスは使用しません。代わりに、使用foreach

    foreach($response as $tweet) 
    { 
        $url = $tweet['entities']['urls']; 
        $hashtag = $tweet['entities']['hashtags']; 
        $text = $tweet['text']; 
    
        echo "$url <br />"; 
        echo "$hashtag <br />"; 
        echo "$text <br />"; 
        echo "<br /><br />"; 
    
    } 
    
    関連する問題