0

カウント値 (現在は 5 に設定) に基づいてツイートの配列を作成するこのコードがありますが、ツイートを表示しようとすると、配列という単語が 5 回繰り返されるだけです (実際のツイートではありません)。私が間違っていることのトラブルシューティングを手伝ってください。

ちなみにcountを1にして変数$tweetをechoするだけで最新のつぶやきが正しく表示されます。

function get_tweet() {

require 'parts/tmhOAuth.php';
require 'parts/tmhUtilities.php';

$tmhOAuth = new tmhOAuth(array(
 'consumer_key' => 'taken out for security purposes',
 'consumer_secret' => 'taken out for security purposes',
 'user_token' => 'taken out for security purposes',
 'user_secret' => 'taken out for security purposes',
 'curl_ssl_verifypeer' => false
));

$code = $tmhOAuth->request('GET', $tmhOAuth->url('1.1/statuses/user_timeline'), array(
'screen_name' => 'designernewsbot',
'count' => '5'));

$response = $tmhOAuth->response['response'];
$tweets = json_decode($response, true);

// This is to create links in my webpage if links are specified in the tweet
$tweet = $tweets[0]['text'];
$tweet = preg_replace("/([\w]+\:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/", "<a target=\"_blank\" href=\"$1\">$1</a>", $tweet);
$tweet = preg_replace("/#([A-Za-z0-9\/\.]*)/", "<a target=\"_new\" href=\"http://twitter.com/search?q=$1\">#$1</a>", $tweet);
$tweet = preg_replace("/@([A-Za-z0-9\/\.]*)/", "<a href=\"http://www.twitter.com/$1\">@$1</a>", $tweet);

foreach($tweets as $tweet):

    echo $tweet;

endforeach;


}
4

1 に答える 1

1

問題はあなたのforeachループにあります。$echo配列であるループ内で印刷しようとしています。したがって、Array to string conversionエラーが発生します。

このfor場合、ループがより適しているようです。

for ($i=0; $i < count($tweets); $i++) { 
    echo $tweets[$i]['text']."\n";
}

アップデート:

ツイートにもリンクを表示するには、次のようにします。

for ($i=0; $i < count($tweets); $i++) { 
    //echo $tweets[$i]['text']."\n";
    $var = preg_replace("/([\w]+\:\/\/[\w-?&;#~=\.\/\@]+[\w\/])/", "<a target=\"_blank\" href=\"$1\">$1</a>", $tweets[$i]['text']);
    $var = preg_replace("/#([A-Za-z0-9\/\.]*)/", "<a target=\"_new\" href=\"http://twitter.com/search?q=$1\">#$1</a>", $var);
    $var = preg_replace("/@([A-Za-z0-9\/\.]*)/", "<a href=\"http://www.twitter.com/$1\">@$1</a>", $var);
    echo $var."\n";
}

私はこれをテストしましたが、動作します。お役に立てれば!

于 2013-08-28T19:15:29.057 に答える