Maison >développement back-end >tutoriel php > PHP cURL并发里的callback那行是什么效能

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

WBOY
WBOYoriginal
2016-06-13 12:37:34969parcourir

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>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn