cURL批处理(multi cURL)

cURL还有一个高级特性——批处理句柄(handle)。这一特性允许你同时或异步地打开多个URL连接。


<?php
$urls = array (
        'www.baidu.com',
        'www.hao123.com',
        'www.baidu.com'
);
// 创建cURL批处理句柄
$mch = curl_multi_init ();
if (!empty($urls)) {
    foreach($urls as $k => $url){
        // 创建cURL资源
        $ch = curl_init();
        //指定URL和适当的参数
        curl_setopt($ch, CURLOPT_URL, $url );
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_multi_add_handle($mch, $ch );
        // 数组存储url_init
        $chs[$k] = $ch;
    }
}
// 预定义一个状态变量
$active = null;
// 执行批处理句柄
do {
    $mrc = curl_multi_exec($mch, $active );
} while($mrc == CURLM_CALL_MULTI_PERFORM );
while($active && $mrc == CURLM_OK ) {
    if(curl_multi_select($mch ) != - 1) {
        do{
            $mrc = curl_multi_exec($mch, $active );
        }while($mrc == CURLM_CALL_MULTI_PERFORM );
    }
}

foreach($chs as $k => $c ){
    if(curl_error ( $c ) == ''){
        $temp = curl_multi_getcontent($c );
        $arr[$k] = $temp;
        // 关闭各个句柄
        curl_multi_remove_handle($mch, $c );
        curl_close($c);
    } else{
        echo 'failed!';
    }
}
// 关闭各个句柄
curl_multi_close($mch );
print_r($arr);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值