首页 > 后端开发 > php教程 > PHP cURL并发里的callback那行是什么效能

PHP cURL并发里的callback那行是什么效能

WBOY
发布: 2016-06-13 12:37:34
原创
983 人浏览过

PHP cURL并发里的callback那行是什么功能?

function rolling_curl($urls, $delay) {<br>
    $queue = curl_multi_init();<br>
    $map = array();<br>
 <br>
    foreach ($urls as $url) {<br>
        $ch = curl_init();<br>
 <br>
        curl_setopt($ch, CURLOPT_URL, $url);<br>
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);<br>
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br>
        curl_setopt($ch, CURLOPT_HEADER, 0);<br>
        curl_setopt($ch, CURLOPT_NOSIGNAL, true);<br>
 <br>
        curl_multi_add_handle($queue, $ch);<br>
        $map[(string) $ch] = $url;<br>
    }<br>
 <br>
    $responses = array();<br>
    do {<br>
        while (($code = curl_multi_exec($queue, $active)) == CURLM_CALL_MULTI_PERFORM) ;<br>
 <br>
        if ($code != CURLM_OK) { break; }<br>
 <br>
        // a request was just completed -- find out which one<br>
        while ($done = curl_multi_info_read($queue)) {<br>
 <br>
            // get the info and content returned on the request<br>
            $info = curl_getinfo($done['handle']);<br>
            $error = curl_error($done['handle']);<br>
            $results = callback(curl_multi_getcontent($done['handle']), $delay);<br>
            $responses[$map[(string) $done['handle']]] = compact('info', 'error', 'results');<br>
 <br>
            // remove the curl handle that just completed<br>
            curl_multi_remove_handle($queue, $done['handle']);<br>
            curl_close($done['handle']); <div class="clear">
                 
              
              
        
            </div>
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板