PHP封装CURL扩展类实例
网络编程 2021-07-05 09:09www.168986.cn编程入门
这篇文章主要介绍了PHP封装CURL扩展类,实例分析了基于curl发送post、get请求及操作cookie等相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
本文实例讲述了PHP封装CURL扩展类。分享给大家供大家参考。具体如下
<?php / @description: 封装CURL扩展 @date: 2014-07-28 16:04 / / @编码规范 @class 类名首字母大写,类名为多个单词, 每个大字首字母大写 eg: class Curl , class CurlPage @variable 变量名小写, 变量名为多个单词, 每个单词小写,使用下划线_分割 eg: $curl_result @function 函数名与类名规则相同 eg: function SendRequest @params 函数形参规则与变量名相同 @class-variable 成员变量,以下划线结尾,多个单词使用下划线分隔. eg: private $host_name_ / / @要求 / class Curl{ / @请求的host / private $host_; / @curl 句柄 / private $ch_; / @超时限制时间 / const time_=5; / @请求的设置 / private $options_; / @保存请求头信息 / private $request_header_; / @保存响应头信息 / private $response_header_; / @body_ 用于保存curl请求返回的结果 / private $body_; / @读取cookie / private $cookie_file_; / @写入cookie / private $cookie_jar_; / @todo proxy @构造函数,初始化CURL回话 / public function Start($url){ $this->ch_ = curl_init($url); curl_set($this->ch_, CURLOPT_HEADER, 1); curl_set($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_set($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_set($this->ch_, CURLOPT_COOKIE, 1); curl_set($this->ch_, CURLOPT_COOKIEFILE , $cookie_file); $this->body_=$this->Execx(); return $this->Close($this->body_); } / @写入cookie / public function SaveCookie($url){ $this->Start($url); curl_set($this->ch_, CURLOPT_COOKIE, 1); curl_set($this->ch_, CURLOPT_COOKIEFILE ,'cookie.txt'); curl_set($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_set($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_set($this->ch_, CURLOPT_TIMEOUT, Curl::time_); if (strpos($url, 'https') === 0) { curl_set($this->ch_, CURLOPT_SSL_VERIFYHOST, 0); curl_set($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_set($this->ch_, CURLOPT_SSL_VERIFYPEER, 0); curl_set($this->ch_, CURLOPT_HTTPHEADER, array("Content-Type: application/x--form-urlencoded")); curl_set($this->ch_, CURLOPT_POST, true); curl_set($this->ch_, CURLOPT_TIMEOUT, Curl::time_); if ($params) { curl_set($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, array $params = array()) { $this->Start($url); curl_set($this->ch_, CURLOPT_TIMEOUT, Curl::time_); curl_set($this->ch_, CURLOPT_RETURNTRANSFER , 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程序设计有所帮助。
上一篇:如何实现php图片等比例缩放
下一篇:php图像处理类实例
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程