php curl 多线程实现

栏目: 编程语言 发布于: 2014-04-25 16:30:01

再分享一种利用php curl实现多线程的方法,具体方法如下:

/*
 * http://www.phpernote.com/php-function/388.html
 * php Curl 多线程类
 */ 
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) || 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);
    }
}

该类的具体使用方法如下:

$urls=array(
'http://www.phpernote.com/php-function/665.html',
'http://www.phpernote.com/php-function/392.html',
'http://www.phpernote.com/php-function/281.html');
$mp=new MultiHttpRequest($urls);
$mp->start();
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处。
转载请注明:文章转载自 [http://www.php230.com]
本文标题:php curl 多线程实现
IT技术书籍推荐:
疯狂Android讲义(第3版)
疯狂Android讲义(第3版)
李刚 (作者)
移动互联网已经成为当今世界发展最快、市场潜力最大、前景最诱人的业务,而Android则是移动互联网上市场占有率最高的平台。 本书是《疯狂Android讲义》的第3版,本书基于最新的Android 5,并采用了Google推荐的IDE:Android Studio作为开发工具,书中每个案例、每个截图都全面升级到Android 5。本书全面介绍了Android应用开发的相关知识,全书内容覆盖了Android用户界面编程、Android四大组件、Android资源访问、图形/图像处理、事件处理机制、Android输入/输出处理、音频/视频多媒体应用开发、OpenGL与3D应用开发、网络通信编程、Android平台的Web Service、传感器应用开发、GPS应用开发、整合第三方Map服务等。
最新互联网资讯