这篇文章主要介绍了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, 1); curl_setopt($this->ch_, 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_, CURLOPT_COOKIE, 1); curl_setopt($this->ch_, CURLOPT_COOKIEFILE ,'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_, CURLOPT_TIMEOUT, 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_, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($this->ch_, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded")); curl_setopt($this->ch_, CURLOPT_POST, true); curl_setopt($this->ch_, CURLOPT_TIMEOUT, 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, array $params = array()) { $this->Start($url); curl_setopt($this->ch_, CURLOPT_TIMEOUT, Curl::time_); curl_setopt($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程序设计有所帮助。
,
Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa