亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php項目中實現一個CURL遠程請求

發布時間:2020-12-11 14:43:24 來源:億速云 閱讀:177 作者:Leah 欄目:開發技術

怎么在php項目中實現一個CURL遠程請求?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

cURL

cURL可以使用URL的語法模擬瀏覽器來傳輸數據,因為它是模擬瀏覽器,因此它同樣支持多種協議,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP等協議都可以很好的支持,包括一些:HTTPS認證,HTTP POST方法,HTTP PUT方法,FTP上傳,keyberos認證,HTTP上傳,代理服務器,cookies,用戶名/密碼認證,下載文件斷點續傳,上傳文件斷點續傳,http代理服務器管道,甚至它還支持IPv6,scoket5代理服務器,通過http代理服務器上傳文件到FTP服務器等等。

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,// 請求超時
   'header' 		=> array(),
   'cookie' 		=> '',// cookie字符串,瀏覽器直接復制即可
   'cookie_file' => '',// 文件路徑,并要有讀寫權限的
   'ssl' 			=> 0,// 是否檢查https協議
   '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);// 設置url
 !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 設置請求頭
 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頁面內容
 curl_setopt($ch, CURLOPT_HEADER, 0);// 不獲取請求頭
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 輸出轉移,不輸出頁面
 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服務器端的驗證ssl
 !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//偽裝請求來源,繞過防盜
 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
 //執行并獲取內容
 $output = curl_exec($ch);
 //對獲取到的內容進行操作
 if($output === FALSE ){
  $result['code'] = 1; // 錯誤
  $result['msg'] = "CURL Error:".curl_error($ch);
 }
 $result['body'] = $output;
 //釋放curl句柄
 curl_close($ch);
 return $result;
}

POST案例

/**
 * curl_post
 * @param $url    請求地址
 * @param null $param  get參數
 * @param array $options 配置參數
 * @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);// 設置url
 !empty($options['header']) && curl_setopt($ch, CURLOPT_HTTPHEADER, $options['header']); // 設置請求頭
 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頁面內容
 curl_setopt($ch, CURLOPT_POST, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
 curl_setopt($ch, CURLOPT_HEADER, 0);// 不獲取請求頭
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 輸出轉移,不輸出頁面
 !$options['ssl'] && curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $options['ssl']); // 禁止服務器端的驗證ssl
 !empty($options['referer']) && curl_setopt($ch, CURLOPT_REFERER, $options['referer']);//偽裝請求來源,繞過防盜
 curl_setopt($ch, CURLOPT_TIMEOUT, $options['timeout']);
 //執行并獲取內容
 $output = curl_exec($ch);
 //對獲取到的內容進行操作
 if($output === FALSE ){
  $result['code'] = 1; // 錯誤
  $result['msg'] = "CURL Error:".curl_error($ch);
 }
 $result['body'] = $output;
 //釋放curl句柄
 curl_close($ch);
 return $result;
}

關于怎么在php項目中實現一個CURL遠程請求問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连云港市| 洮南市| 商水县| 延川县| 麻江县| 来安县| 康平县| 旬阳县| 宁化县| 普兰县| 襄垣县| 若尔盖县| 龙泉市| 永善县| 苏尼特左旗| 淳化县| 洛浦县| 九台市| 肇东市| 长垣县| 禹城市| 天等县| 微山县| 荥阳市| 尚义县| 买车| 石泉县| 即墨市| 临湘市| 莒南县| 奈曼旗| 金阳县| 龙泉市| 宁强县| 桦南县| 台南市| 丹阳市| 合山市| 马公市| 金寨县| 原阳县|