欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

CURL多线程不执行一直在请求

程序员文章站 2022-05-05 15:01:49
...
代码如下
`

ini_set('max_execution_time',0);

for($i = 6055;$i >3055;$i--){

$connomains[] = 'http://www.xxxxx.com/index.php&id='.$i;

}

$mh = curl_multi_init();

foreach ($connomains as $i => $url) {

$conn[$i]=curl_init($url);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);
curl_multi_add_handle ($mh,$conn[$i]);

}

$active = null;
do {

$mrc = curl_multi_exec($mh, $active);

} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {

if (curl_multi_select($mh) != -1) {
    do {
        $mrc = curl_multi_exec($mh, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
}

}

foreach ($connomains as $i => $url) {

$res[$i]=curl_multi_getcontent($conn[$i]);
$res[$i] = json_decode($res[$i],true);
var_dump($res[$i]);
curl_close($conn[$i]);

}
print_r($res);

?>
`

页面源地址是http://www.4wei.cn/archives/1001877

回复内容:

代码如下
`

ini_set('max_execution_time',0);

for($i = 6055;$i >3055;$i--){

$connomains[] = 'http://www.xxxxx.com/index.php&id='.$i;

}

$mh = curl_multi_init();

foreach ($connomains as $i => $url) {

$conn[$i]=curl_init($url);
curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);
curl_multi_add_handle ($mh,$conn[$i]);

}

$active = null;
do {

$mrc = curl_multi_exec($mh, $active);

} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {

if (curl_multi_select($mh) != -1) {
    do {
        $mrc = curl_multi_exec($mh, $active);
    } while ($mrc == CURLM_CALL_MULTI_PERFORM);
}

}

foreach ($connomains as $i => $url) {

$res[$i]=curl_multi_getcontent($conn[$i]);
$res[$i] = json_decode($res[$i],true);
var_dump($res[$i]);
curl_close($conn[$i]);

}
print_r($res);

?>
`

页面源地址是http://www.4wei.cn/archives/1001877

代码的意思是请求3000次后在执行输出,把次数改小点看看