php curl 多线程操作代码实例 这篇文章主要介绍了php curl 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下
使用方法:
?
            1
            2
            3
$urls =  array(http://baidu.com,  http://21andy.com,  http://google.com);
            $mp =  new multihttprequest($urls);
            $mp->start();
?
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            17
            18
            19
            20
            21
            22
            23
            24
            25
            26
            27
            28
            29
            30
            31
            32
            33
            34
            35
            36
            37
            38
            39
            40
            41
            42
            43
            44
            45
            46
            47
            48
            49
            50
            51
            52
            53
            54
            55
            56
            57
            58
            59
            60
            61
            62
            63
            64
            65
            66
            67
            68
            69
            70
/*
            * curl 多线程类
            * 使用方法:
            * ========================
            $urls = array(http://baidu.com, http://dzone.com, http://google.com);
            $mp = new multihttprequest($urls);
            $mp->start();
            * ========================
            */
            class multihttprequest {
            public $urls = array();
            public $curlopt_header = 1;
            public $method = get;
function __construct($urls = false) {
            $this->urls = $urls;
            }
function set_urls($urls) {
            $this->urls = $urls;
            return $this;
            }
function is_return_header($b) {
            $this->curlopt_header = $b;
            return $this;
            }
function set_method($m) {
            $this->medthod = strtoupper($m);
            return $this;
            }
function start() {
            if(!is_array($this->urls) or  count($this->urls) == 0){
            return false;
            }
            $curl = $text = array();
            $handle = curl_multi_init();
            foreach($this->urls as  $k=>$v){
            $curl[$k] = $this->add_handle($handle, $v);
            }
$this->exec_handle($handle);
            foreach($this->urls as  $k=>$v){
            curl_multi_getcontent($curl[$k]);
            echo $curl[$k].\n;
            //$text[$k] =  curl_multi_getcontent($curl[$k]);
            //echo $text[$k], \n\n;
            curl_multi_remove_handle($handle, $curl[$k]);
            }
            curl_multi_close($handle);
            }
private function add_handle($handle, $url) {
            $curl = curl_init();
            curl_setopt($curl, curlopt_url,  $url);
            curl_setopt($curl, curlopt_header,  $this->curlopt_header);
            curl_setopt($curl,  curlopt_returntransfer, 1);
            curl_multi_add_handle($handle, $curl);
            return $curl;
            }
private function exec_handle($handle) {
            $flag = null;
            do {
            curl_multi_exec($handle, $flag);
            } while ($flag > 0);
            }
            }
http://www.bkjia.com/phpjc/1000087.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1000087.htmltecharticlephp curl 多线程操作代码实例 这篇文章主要介绍了php curl 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下 使用方法: ?...
   
 
   