欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php遠(yuǎn)程請(qǐng)求CURL實(shí)例教程(爬蟲、保存登錄狀態(tài))

 更新時(shí)間:2020年12月10日 12:44:05   作者:slongzhang_  
這篇文章主要給大家介紹了關(guān)于php遠(yuǎn)程請(qǐng)求CURL(爬蟲、保存登錄狀態(tài))的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

cURL

cURL可以使用URL的語法模擬瀏覽器來傳輸數(shù)據(jù),因?yàn)樗悄M瀏覽器,因此它同樣支持多種協(xié)議,F(xiàn)TP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等協(xié)議都可以很好的支持,包括一些:HTTPS認(rèn)證,HTTP POST方法,HTTP PUT方法,F(xiàn)TP上傳,keyberos認(rèn)證,HTTP上傳,代理服務(wù)器,cookies,用戶名/密碼認(rèn)證,下載文件斷點(diǎn)續(xù)傳,上傳文件斷點(diǎn)續(xù)傳,http代理服務(wù)器管道,甚至它還支持IPv6,scoket5代理服務(wù)器,通過http代理服務(wù)器上傳文件到FTP服務(wù)器等等。

本文主要介紹的是php遠(yuǎn)程請(qǐng)求CURL(爬蟲、保存登錄狀態(tài))的相關(guān)內(nèi)容,下面話不多說了,來一起看看詳細(xì)的介紹吧

GET案例

/**
 * curl_get
 * @param $url
 * @param null $param
 * @param null $options
 * @return array
 */
function curl_get($url,$param = null,$options = null){
 if(empty($options)){
  $options = array(
   'timeout' 		=> 30,// 請(qǐng)求超時(shí)
   'header' 		=> array(),
   'cookie' 		=> '',// cookie字符串,瀏覽器直接復(fù)制即可
   'cookie_file' => '',// 文件路徑,并要有讀寫權(quán)限的
   'ssl' 			=> 0,// 是否檢查https協(xié)議
   'referer' 		=> null
  );
 }else{
  empty($options['timeout']) && $options['timeout'] = 30;
  empty($options['ssl']) && $options['ssl']	= 0;
 }
 $result = array(
  'code'  => 0,
  'msg'  => 'success',
  'body'  => ''
 );
 if(is_array($param)){
  $param = http_build_query($param);
 }
 $url = strstr($url,'?')?trim($url,'&').'&'.$param:$url.'?'.$param;
 $ch = curl_init();

 curl_setopt($ch,CURLOPT_URL, $url);// 設(shè)置url
 !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 設(shè)置請(qǐng)求頭
 if(!empty($options['cookie_file']) && file_exists($options['cookie_file'])){
  curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']);
 }else if(!empty($options['cookie'])){
  curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']);
 }
 curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解壓gzip頁面內(nèi)容
 curl_setopt($ch, CURLOPT_HEADER, 0);// 不獲取請(qǐng)求頭
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 輸出轉(zhuǎn)移,不輸出頁面
 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服務(wù)器端的驗(yàn)證ssl
 !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//偽裝請(qǐng)求來源,繞過防盜
 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
 //執(zhí)行并獲取內(nèi)容
 $output = curl_exec($ch);
 //對(duì)獲取到的內(nèi)容進(jìn)行操作
 if($output === FALSE ){
  $result['code'] = 1; // 錯(cuò)誤
  $result['msg'] = "CURL Error:".curl_error($ch);
 }
 $result['body'] = $output;
 //釋放curl句柄
 curl_close($ch);
 return $result;
}

POST案例

/**
 * curl_post
 * @param $url    請(qǐng)求地址
 * @param null $param  get參數(shù)
 * @param array $options 配置參數(shù)
 * @return array
 */
function curl_post($url,$param = null,$options = array()){
 if(empty($options)){
  $options = array(
   'timeout' 		=> 30,
   'header' 		=> array(),
   'cookie' 		=> '',
   'cookie_file' => '',
   'ssl' 			=> 0,
   'referer' 		=> null
  );
 }else{
  empty($options['timeout']) && $options['timeout'] = 30;
  empty($options['ssl']) && $options['ssl']	= 0;
 }

 $result = array(
  'code'  => 0,
  'msg'  => 'success',
  'body'  => ''
 );
 if(is_array($param)){
  $param = http_build_query($param);
 }
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);// 設(shè)置url
 !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 設(shè)置請(qǐng)求頭
 if(!empty($options['cookie_file']) && file_exists($options['cookie_file'])){
  curl_setopt($ch, CURLOPT_COOKIEFILE, $options['cookie_file']);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $options['cookie_file']);
 }else if(!empty($options['cookie'])){
  curl_setopt($ch, CURLOPT_COOKIE, $options['cookie']);
 }


 curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); //curl解壓gzip頁面內(nèi)容
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
 curl_setopt($ch, CURLOPT_HEADER, 0);// 不獲取請(qǐng)求頭
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 輸出轉(zhuǎn)移,不輸出頁面
 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服務(wù)器端的驗(yàn)證ssl
 !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//偽裝請(qǐng)求來源,繞過防盜
 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
 //執(zhí)行并獲取內(nèi)容
 $output = curl_exec($ch);
 //對(duì)獲取到的內(nèi)容進(jìn)行操作
 if($output === FALSE ){
  $result['code'] = 1; // 錯(cuò)誤
  $result['msg'] = "CURL Error:".curl_error($ch);
 }
 $result['body'] = $output;
 //釋放curl句柄
 curl_close($ch);
 return $result;
}

其他請(qǐng)求類型請(qǐng)自己參考封裝處理

到此這篇關(guān)于php遠(yuǎn)程請(qǐng)求CURL(爬蟲、保存登錄狀態(tài))的文章就介紹到這了,更多相關(guān)php遠(yuǎn)程請(qǐng)求CURL(爬蟲、保存登錄狀態(tài))內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論