php 使用 CURL 獲取數據

第一種,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.csdn.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會話

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章