• PHP CURL 多线程 GET/POST 类


    PHP CURL 多线程 GET/POST 类

    如果有需要更正或更高效的建议,欢迎在OSchina分享~(≧▽≦)/~

    http://www.oschina.net/code/snippet_1475115_44902

    <?php
    /****************************************************************
                        PHP CURL 多线程 GET/POST              
    Email:szj1006@vip.qq.com/QQ:690204663                  
    Powered by XiaoSang      
    curl(array('url?get=data','url'),array('','post_data')); 
    *****************************************************************/ 
    function curl($urls,$post) {
         $queue = curl_multi_init();
         $map = array();
         foreach ($urls as $key => $url) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_TIMEOUT, 30);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post[$key]);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_setopt($ch, CURLOPT_NOSIGNAL, true);
            curl_multi_add_handle($queue, $ch);
            $map[(string) $ch] = $url;
        }
        $responses = array();
        do {
            while (($code = curl_multi_exec($queue, $active)) == CURLM_CALL_MULTI_PERFORM) ;
            if ($code != CURLM_OK) { break; }
            while ($done = curl_multi_info_read($queue)) {
                $error = curl_error($done['handle']);
                $results = curl_multi_getcontent($done['handle']);
                $responses[$map[(string) $done['handle']]] = compact('error', 'results');
                curl_multi_remove_handle($queue, $done['handle']);
                curl_close($done['handle']);
            }
            if ($active > 0) {
                curl_multi_select($queue, 0.5);
            }
        } while ($active);
        curl_multi_close($queue);
        return $responses;
    }
  • 相关阅读:
    swift
    swift
    swift
    swift
    swift
    swift
    swift
    swift
    Swift
    Nginx 访问控制
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4489702.html
Copyright © 2020-2023  润新知