PHP调用超过1条推文


PHP calling in more than 1 Tweet

我有这样的代码,它根据计数值(当前设置为5)创建一个tweet数组。然而,当我试图显示tweet时,我只得到重复了5次的单词array(而不是实际的tweet),有人能帮我解决我做错了什么吗?

顺便说一句,如果我将计数更改为1,并只回显变量$tweet,我将正确显示最新的tweet。

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;

}

问题在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";
}

我已经测试过了,它有效。希望这能有所帮助!