PHP CURL 多线程操作代码实例

使用方法:

  $urls = array("http://baidu.com", "http://21andy.com", "http://google.com");  $mp = new MultiHttpRequest($urls);  $mp->start();

  /*   * 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], "nn";         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);     }  }  

PHP CURL 多线程操作代码实例

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论