第一種,POST 和 GET 合並
function http_curl($url, $type = 'get', $data = ''){ $cl = curl_init(); //初始化 curl_setopt($cl, CURLOPT_URL, $url); //設置 cURL 傳輸選項 curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1); // 將curl_exec()獲取的信息以字符串返回,而不是直接輸出。
curl_setopt($cl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($cl, CURLOPT_SSL_VERIFYHOST, false);
if($type == 'post'){ curl_setopt($cl, CURLOPT_POST, 1); //發送 POST 請求,類型為:application/x-www-form-urlencoded curl_setopt($cl, CURLOPT_POSTFIELDS, $data); } $output = curl_exec($cl); //執行 cURL 會話 curl_close($cl); return $output; }
第二種 POST 和 GET分開
POST
$url = "http://localhost/web_services.php"; $post_data = array ("username" => "bob","key" => "12345"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // post數據 curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
// post的變量 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $output = curl_exec($ch); curl_close($ch); //打印獲得的數據 print_r($output);
GET
//初始化 $ch = curl_init(); //設置選項,包括URL curl_setopt($ch, CURLOPT_URL, "http://www.jb51.net"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //執行並獲取HTML文檔內容 $output = curl_exec($ch); //釋放curl句柄 curl_close($ch); //打印獲得的數據 print_r($output);
以上方式獲取到的數據是json格式的
使用 json_decode($output,true)
可解析為數組;使用 json_decode($output) 可解析為對象
參數說明:
$url :要請求的url地址,如果是get方式請求,可以把參數直接加到url后面
$type:請求方式
$data:post方式請求時攜帶的參數
curl_init() 初始化一個cURL會話
curl_setopt() 設置一個cURL傳輸選項
curl_exec() 執行一個cURL會話
curl_close() 關閉一個cURL會話