加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP封装CURL扩展类实例

发布时间:2020-05-23 20:43:51 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了PHP封装CURL扩展类,实例分析了基于curl发送post、get请求及操作cookie等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

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

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程序设计有所帮助。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读