1. 程式人生 > >curl 函數總結

curl 函數總結

curl

參數:
$url 請求 URL string;
$body array ;
$header array;

function
postCurl($url,$body,$header,$type="POST"){
//1.創建一個curl資源
$ch = curl_init();
//2.設置URL和相應的選項
curl_setopt($ch,CURLOPT_URL,$url);//設置url
//1)設置請求頭
//array_push($header, ‘Accept:application/json‘);
//array_push($header,‘Content-Type:application/json‘);
//array_push($header, ‘http:multipart/form-data‘);
//設置為false,只會獲得響應的正文(true的話會連響應頭一並獲取到)
curl_setopt($ch,CURLOPT_HEADER,0);
// 設置超時限制防止死循環
//curl_setopt ( $ch, CURLOPT_TIMEOUT,5);
//設置發起連接前的等待時間,如果設置為0,則無限等待。
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
//將curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//2)設備請求體
if (count($body)>0) {
//$b=json_encode($body,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);//全部數據使用HTTP協議中的"POST"操作來發送。
}
//設置請求頭
if(count($header)>0){
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
}
//上傳文件相關設置
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 對認證證書來源的檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);// 從證書中檢查SSL加密算
//3)設置提交方式
switch($type){
case "GET":
curl_setopt($ch,CURLOPT_HTTPGET,true);
break;
case "POST":
curl_setopt($ch,CURLOPT_POST,true);
break;
case "PUT"://使用一個自定義的請求信息來代替"GET"或"HEAD"作為HTTP請求。這對於執行"DELETE" 或者其他更隱蔽的HTT
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"PUT");
break;
case "DELETE":
curl_setopt($ch,CURLOPT_CUSTOMREQUEST,"DELETE");
break;
}
//4)在HTTP請求中包含一個"User-Agent: "頭的字符串。-----必設
//curl_setopt($ch, CURLOPT_USERAGENT, ‘SSTS Browser/1.0‘);
//curl_setopt($ch, CURLOPT_ENCODING, ‘gzip‘);

curl_setopt ( $ch, CURLOPT_USERAGENT, ‘Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)‘ ); // 模擬用戶使用的瀏覽器
//5)
//3.抓取URL並把它傳遞給瀏覽器
$res=curl_exec($ch);

$result=json_decode($res,true);
//4.關閉curl資源,並且釋放系統資源
curl_close($ch);
if(empty($result))
return $res;
else
return $result;

}


curl 函數總結