这篇文章主要介绍了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程序设计有所帮助。
,
ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター
