Перебор ссылок запроса с помощью CURL и объединение результирующих массивов в PHP

#php #curl #twitter

#php #curl #Twitter

Вопрос:

Предполагается, что следующий код выполняет поиск термина в Twitter, перебирает все страницы результатов и возвращает один большой массив с результатами с каждой страницы, добавляемыми на каждом шаге.

 foreach($search_terms as $term){
    //populate the obj array by going through all pages

    //set up connection
    $ch = curl_init();

    // go through all pages and save in an object array
    for($j=1; $j<16;$j  ){
        $url ='http://search.twitter.com/search.json?q=' . $term .'amp;rpp=100amp;page='.$j.'';
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
        $var[$j] = curl_exec($ch);
        curl_close($ch);
        $obj = array_merge((array)$obj,(array)json_decode($var[$j], true));
    }
}
  

Однако это не совсем работает, и я получаю эти ошибки:

 curl_setopt(): 3 is not a valid cURL handle resource
curl_exec(): 3 is not a valid cURL handle resource
curl_close(): 3 is not a valid cURL handle resource
...... and this is repeated all the way from 3-> 7...
curl_setopt(): 7 is not a valid cURL handle resource
curl_exec(): 7 is not a valid cURL handle resource
curl_close(): 7 is not a valid cURL handle resource
  

Ответ №1:

 //set up connection
$ch = curl_init();
// go through all pages and save in an object array

for($j=1; $j<16;$j  ){
  

Вам нужен вызов curl_init() внутри вашего цикла, поскольку вы закрываете его в конце каждой итерации.