0

我编写了以下代码,用于检索特定用户的 100 多个 Twitter 关注者。

<?php
$cursor = -1;
$account_from = 'twitterapi';
do
{
$json = file_get_contents('http://api.twitter.com/1/followers/ids.json?cursor='.$cursor.'&screen_name='.$account_from.'');

$accounts = json_decode($json);


foreach ($accounts->ids as $account)
{

        $a[] = $account ; 


}
$cursor = $accounts->next_cursor;


}
while ($cursor > 0);


    $n = ceil(count($a) / 100) ; 
    $b = array_chunk($a, 100) ; 


    for($i=0 ; $i<$n ; $i++) {

        $user = ''; 

        for($j=0 ; $j<count($b[$i]) ; $j++) {

                    $user =  $user.$b[$i][$j].',' ;


        }

        $json=file_get_contents('http://api.twitter.com/1/users/lookup.json?user_id='.$user.'') ;
        $fo= json_decode($json);

        foreach ($fo as $key => $jsons) {

             foreach($jsons as $key => $value) {

                     if($key == 'screen_name'){

                             $arr[] = $value;

                    }

            }

        }

    }

    return $arr ; 



?>

但是正如你所看到的,HTTP 请求中有太多的瓶颈,有时如果用户有很多关注者,由于 PHP 的最大执行限制,脚本会超时。

但是根据这个,我们应该使用 POST 来处理更大的请求。我不确定如何改用 POST。

任何帮助深表感谢。

4

2 回答 2

0

使用 file_get_contents,您无法发送 POST 请求。我推荐使用Guzzle,它本质上是一个围绕 cURL 的干净的 OOP 包装器。“旅游”页面上甚至还有一个 Twitter API 示例:这里

于 2012-06-25T23:03:48.067 回答
0

使用cURL 扩展名在curl_setopt中将 CURLOPT_POST 设置为 TRUE 。页面的示例部分中有示例

于 2012-06-25T08:45:20.850 回答