curl并发例子

来源:互联网 发布:手机淘宝联盟登录失效 编辑:程序博客网 时间:2024/05/29 04:32
$curls = array();$mh = curl_multi_init();foreach($clss as $key => $cls){    $param = $this->cvtParam($cls);    //$header[] = "Content-type: text/xml";        //定义content-type为xml,注意是数组    $curls[$key]['url'] = $this->gs_url;    $curls[$key]['ch'] = curl_init();    curl_setopt($curls[$key]['ch'], CURLOPT_URL, $curls[$key]['url']);    curl_setopt($curls[$key]['ch'], CURLOPT_RETURNTRANSFER, true);    //curl_setopt($curls[$key]['ch'], CURLOPT_HTTPHEADER, $header);    curl_setopt($curls[$key]['ch'], CURLOPT_POST, 1);    curl_setopt($curls[$key]['ch'], CURLOPT_TIMEOUT, 3);    curl_setopt($curls[$key]['ch'], CURLOPT_POSTFIELDS, $param);    curl_setopt($curls[$key]['ch'], CURLOPT_SSL_VERIFYPEER, false);}foreach ($curls as $curl) {    curl_multi_add_handle($mh, $curl['ch']);}$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);    }}$rs = array();foreach ($curls as $key => $curl) {    $r = curl_multi_getcontent($curl['ch']);    curl_multi_remove_handle($mh, $curl['ch']);    if($r){        $rs[$key] = json_decode($r,true);    }}curl_multi_close($mh);return $rs;
0 0
原创粉丝点击