//$ID = array of identificators
function getLotInfo($ID)
{
$info = array();
$multi = curl_multi_init();
$channels = array();
foreach ($ID as $id) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://skylots.org/lot/$id");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies/cookie.txt');
curl_multi_add_handle($multi, $ch);
$channels[$id] = $ch;
}
$active = null;
do {
$mrc = curl_multi_exec($multi, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($multi) == -1) {
continue;
}
do {
$mrc = curl_multi_exec($multi, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
$datas = array();
foreach ($channels as $channel) {
$datas[] = curl_multi_getcontent($channel);
curl_multi_remove_handle($multi, $channel);
}
curl_multi_close($multi);
}
这样,我可以做很多的请求,在理论上,但是当identificators的数量大约是500多,
为什么会发生这种情况,我该如何解决这个问题?