php curl批处理--可控并发异步
在php的手册里面有一段代码:
$mrc = curl_multi_init(); //发出请求 ....... $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); } } //下面是处理请求返回的结果
$mh = curl_multi_init(); $ch = array(); $chunck = 10; //并发控制数 $all = count($urls);//所有的请求url数组 $chunck = $all > $chunck ? $chunck : $all; $options = array( CURLOPT_HEADER=>FALSE, CURLOPT_RETURNTRANSFER=>TRUE, CURLOPT_FOLLOWLOCATION=>TRUE, CURLOPT_MAXREDIRS=>5, CURLOPT_USERAGENT=>'Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0' ); for($i = 0 ; $i <br><br>使用下来效果很好,没有副作用,并发数可控,应用之处多多,自己发挥想象吧 <div class="clear"> </div>