PHP封装CURL扩展类实例

本文实例讲述了PHP封装CURL扩展类。分享给大家供大家参考。具体如下:

rush:PHP;"> ch_ = curl_init($url); curl_setopt($this->ch_,CURLOPT_HEADER,1); curl_setopt($this->ch_,CURLOPT_RETURNTRANSFER,1 ); } /** * @返回响应头 */ public function ResponseHeader($url){ if (!function_exists('http_parse_headers')) { function http_parse_headers ($raw_headers){ $headers = array(); foreach (explode("\n",$raw_headers) as $i => $h) { $h = explode(':',$h,2); if (isset($h[1])) { if(!isset($headers[$h[0]])) { $headers[$h[0]] = trim($h[1]); } else if(is_array($headers[$h[0]])) { $tmp = array_merge($headers[$h[0]],array(trim($h[1]))); $headers[$h[0]] = $tmp; } else { $tmp = array_merge(array($headers[$h[0]]),array(trim($h[1]))); $headers[$h[0]] = $tmp; } } } return $headers; } } $this->Start($url); curl_setopt($this->ch_,CURLOPT_TIMEOUT,Curl::time_); $this->body_=$this->Execx(); $header_size = curl_getinfo($this->ch_,CURLINFO_HEADER_SIZE); $this->response_header_ = substr($this->body_,$start = 0,$offset = $header_size); $this->response_header_ = http_parse_headers($this->response_header_); print_r($this->response_header_); return $this->Close($this->body_); } /** * @读取cookie */ public function LoadCookie($url,$cookie_file){ $this->Start($url); curl_setopt($this->ch_,CURLOPT_COOKIE,CURLOPT_COOKIEFILE,$cookie_file); $this->body_=$this->Execx(); return $this->Close($this->body_); } /** * @写入cookie */ public function SaveCookie($url){ $this->Start($url); curl_setopt($this->ch_,'cookie.txt'); curl_setopt($this->ch_,CURLOPT_COOKIEJAR,'cookie.txt'); $this->body_=$this->Execx(); return $this->Close($this->body_); } /** * @设置HEADER */ public function SetHeader($headers = null){ if (is_array($headers) && count($headers) > 0) { curl_setopt($this->ch_,CURLOPT_HTTPHEADER,$headers); } } /** * @GET请求 */ public function Get($url,array $params = array()) { if ($params) { if (strpos($url,'?')) { $url .= "&".http_build_query($params); } else { $url .= "?".http_build_query($params); } } $this->Start($url); curl_setopt($this->ch_,Curl::time_); if (strpos($url,'https') === 0) { curl_setopt($this->ch_,CURLOPT_SSL_VERIFYHOST,0); curl_setopt($this->ch_,CURLOPT_SSL_VERIFYPEER,0); } $this->body_=$this->Execx(); return $this->Close($this->body_); } /** * @POST请求 */ public function Post($url,array $params = array()) { $this->Start($url); curl_setopt($this->ch_,array("Content-Type: application/x-www-form-urlencoded")); curl_setopt($this->ch_,CURLOPT_POST,true); curl_setopt($this->ch_,Curl::time_); if ($params) { curl_setopt($this->ch_,CURLOPT_POSTFIELDS,http_build_query($params)); } $this->body_=$this->Execx(); return $this->Close($this->body_); } /** * @tips: google http head 方法 */ public function Head($url,Curl::time_); curl_setopt($this->ch_,0); curl_setopt($this->ch_,CURLOPT_NOBODY,true); $this->body_=$this->Execx(); return $this->Close($this->body_); } /** * @执行CURL会话 */ public function Execx(){ return curl_exec($this->ch_); } /** * @关闭CURL句柄 */ public function Close($body_){ if ($body_ === false) { echo "CURL Error: " . curl_error($body_); return false; } curl_close($this->ch_); return $body_; } }

希望本文所述对大家的PHP程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...