/** * request請求封裝
* class request
* @package tool */
class
request
if(!filter_var($url,filter_validate_url))
unset($parts
);
//請求引數格式轉換成陣列
// if('json' !== strtolower($method))
// 頭部格式轉換
$header = self::format_header($header
);
//引數格數轉換與請求頭設定
switch (strtolower($method
))
break
;
case 'post':
$options[curlopt_post] = true; //
post提交方式
break
;
case 'json':
$options[curlopt_post] = true; //
post提交方式
if(!empty($params) && is_array($params)) $params = json_encode($params
);
if(!is_array($header)) $header =;
$check = false
;
if(!empty($header
)) }
}if(!$check
)
}break
;
case 'form':
$options[curlopt_post] = true; //
post提交方式
// 偽造**referer
post提交方式
}
$ch = curl_init(); //
初始化curl
抓取指定網頁
$setopt[curlopt_post] = true; //
是否post提交方式
模擬瀏覽器**
$setopt[curlopt_returntransfer] = true; //
設定獲取的資訊以檔案流的形式返回,而不是直接輸出
$setopt[curlopt_nobody] = false; //
不顯示body
$setopt[curlopt_header] = false; //
設定標頭檔案的資訊作為資料流輸出
// $header = 'client-ip: 8.8.8.8';
// $header = 'x-forwarded-for: 8.8.8.8'; // 偽造ip**
if(!empty($header
))//
$setopt[curlopt_referer] = 60; //偽造**referer
// $setopt[curlopt_connecttimeout] = 60; //超時設定
// $setopt[curlopt_followlocation] = true; //根據伺服器返回 http 頭中的'location:'重定向
// $setopt[curlopt_maxredirs] = 3; //最大重定向次數
// $setopt[curlopt_httpproxytunnel] = true; //是否通過http**來傳輸
// $setopt[curlopt_proxy] = 'ip:埠號'; //是否通過http**來傳輸
// $setopt[curlopt_proxyuserpwd] = 'user:password'; //如果要密碼的話,加上這個
// cookie設定
// $setopt[curlopt_cookie] = ''; //cookie
// $setopt[curlopt_noprogress] = false; //是否關閉傳輸進度,預設是true
// $setopt[curlopt_progressfunction] = 'callback'; //**函式,curl傳輸過程中,會每隔一段時間自動呼叫該函式
if(!empty($params
))
if (function_exists('curl_file_create'))else
}if(!empty($options) && is_array($options)) $setopt = $options + $setopt
; curl_setopt_array(
$ch, $setopt
);
unset($url, $params, $header, $method, $setopt
);
$response = curl_exec($ch); //
執行curl
$errno = curl_errno($ch); //
返回最後一次的錯誤號
狀態碼 curl_close($ch
/*** get提交
* @param $url
* @param array $params
* @param array $header
* @param int $timeout
* @return mixed
*/public
static
function get($url, $params=, $header=, $timeout=60)
/*** post提交
* @param $url
* @param array $params
* @param array $header
* @param int $timeout
* @return mixed
*/public
static
function post($url, $params=, $header=, $timeout=60)
/*** json提交
* @param $url
* @param array $params
* @param array $header
* @param int $timeout
* @return mixed
*/public
static
function json($url, $params=, $header=, $timeout=60)
/*** form表單提交
* @param $url
* @param array $params
* @param array $header
* @param int $timeout
* @return array|mixed
*/public
static
function form($url, $params=, $header=, $timeout=60)
/*** 組裝form表單跳轉
* @param $url
* @param $params
* @param string $method
*/public
static
function createform($url, $params, $method='post')
慎用PHP REQUEST陣列
不過,從今以後我會盡量不再使用 request這個陣列,因為以前對這個陣列有些一知半解,總以為用起來簡單,並且隨心所欲,和 get與 post一樣,而且由系統為我判斷,多好。下面我就來簡單的介紹一下為何不應該使用 request這個陣列。我們都知道,處理表單資料,可以使用php的 get和 post...
curl封裝請求
一 linux curl用法舉例 1.linux curl抓取網頁 如發現亂碼,可以使用iconv轉碼 fgb2312 iconv的用法請參閱 在linux unix系統下用iconv命令處理文字檔案中文亂碼問題 2.linux curl使用 linux curl使用http 抓取頁面 使用sock...
vue axios 請求封裝
import axios from axios import router from router index import from element ui import from utils loading import from utils auth import qs from qs 引入qs...