生活随笔
收集整理的這篇文章主要介紹了
基于curl的php多线程类(异步请求)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
來源:http://blog.csdn.net/sunjier/article/details/8375073
<?php?? ? ? ? ?? class?CurlRequest?? {?? ????? ? ?? ?????? ????protected?$url;??????????? ????protected?$data;?????????? ?????? ????protected?$request_url??????????????=?'';????????? ????protected?$request_data?????????????=?array();???? ????protected?$request_timeout??????????=?30;????????? ?? ????? ? ? ?? ????public?function?url($url)?? ????{?? ????????$this->url???=?$url;?? ?? ????????$parseUrl???=?parse_url($url);???? ????????$this->request_url???=?'';?? ????????$this->request_url???.=?$parseUrl['scheme']=='https'???'https://'?:?'http://';?? ????????$this->request_url???.=?$parseUrl['host'];?? ????????$this->request_url???.=?$parseUrl['port']???':'.$parseUrl['port']?:?':80';?? ????????$this->request_url???.=?$parseUrl['path'];?? ????????parse_str($parseUrl['query'],?$parseStr);?? ????????$this->request_data??=?array_merge($this->request_data,?$parseStr);?? ?? ????????return?$this;?? ????}?? ?? ????? ? ? ?? ????public?function?data($data)?? ????{?? ????????$this->request_data?=?array_merge($this->request_data,?$data);?? ????????return?$this;?? ????}?? ?? ????? ? ? ?? ????public?function?timeout($timeout)?? ????{?? ?????????? ????????$this->request_timeout???=?(int)$timeout;?? ????????return?$this;?? ????}?? ?? ????? ? ? ?? ????public?function?get()?? ????{?? ????????$returnData;?? ?????????? ????????$ch?=?curl_init();?? ?????????? ????????$url?=?$this->request_url.'?'.http_build_query($this->request_data);?? ????????curl_setopt($ch,?CURLOPT_HTTPGET,?1);????????????? ????????curl_setopt($ch,?CURLOPT_URL,?$url);?????????????? ????????curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);?????? ????????curl_setopt($ch,?CURLOPT_CONNECTTIMEOUT,?$this->request_timeout);?????? ????????curl_setopt($ch,?CURLOPT_TIMEOUT,?$this->request_timeout);????????????? ?? ?????????? ????????$output?=?curl_exec($ch);?? ????????if?($output?===?false)?? ????????{?? ????????????$returnData['status']???=?0;?? ????????????$returnData['data']?????=?curl_error($ch);?? ????????}?? ????????else?? ????????{?? ????????????$returnData['status']???=?1;?? ????????????$returnData['data']?????=?$output;???????????? ????????}?? ?????????? ????????curl_close($ch);?? ????????return?$returnData;?? ????}?? ????? ? ? ?? ????public?function?post()?? ????{?? ????????$returnData;?? ?????????? ????????$ch?=?curl_init();?? ?????????? ????????curl_setopt($ch,?CURLOPT_POST,?1);???????????????????? ????????curl_setopt($ch,?CURLOPT_URL,?$this->request_url);????? ????????curl_setopt($ch,?CURLOPT_POSTFIELDS,?$this->request_data);????? ????????curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);?????????? ????????curl_setopt($ch,?CURLOPT_CONNECTTIMEOUT,?$this->request_timeout);?????? ????????curl_setopt($ch,?CURLOPT_TIMEOUT,?$this->request_timeout);????????????? ?????????? ????????$output?=?curl_exec($ch);?? ????????if?($output?===?false)?? ????????{?? ????????????$returnData['status']???=?0;?? ????????????$returnData['data']?????=?curl_error($ch);?? ????????}?? ????????else?? ????????{?? ????????????$returnData['status']???=?1;?? ????????????$returnData['data']?????=?$output;???????????? ????????}?? ?????????? ????????curl_close($ch);?? ????????return?$returnData;?? ????}?? } ?
總結
以上是生活随笔為你收集整理的基于curl的php多线程类(异步请求)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。