CURL 支持 GET、PUT、POST、DELETE請求


一個方法解決所有的 curl 請求的問題。

<?php

function curlTypeData( $method, $url, $data=false, $json=false )
{
  $dataString = $json ? json_encode( $data ) : http_build_query( $data );
  $ch = curl_init(); // 啟動一個 CURL 請求
  curl_setopt( $ch, CURLOPT_URL, $url ); // 確定要請求的地址
  curl_setopt( $ch, CURLOPT_HEADER, 0); // 是否顯示返回的 Header 區域內容
  curl_setopt( $ch, CURLINFO_HEADER_OUT, true ); // 獲取請求頭信息
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true); // 獲取的信息以文件流的形式返回
  curl_setopt( $ch, CURLOPT_TIMEOUT, 5 ); // 請求過期時間
  // curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false); // 從證書中檢查SSL加密算法是否存在
  // curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false); // 對認證證書來源的檢查

  // 判斷要執行的 CURL 的請求方式
  $method = strtoupper( $method );
  switch ( $method ) {
    case 'GET':
      curl_setopt( $ch, CURLOPT_HTTPGET, true ); // 設置請求方式為 GET
      break;
    case 'POST':
      curl_setopt( $ch, CURLOPT_POST, true ); // 設置請求方式為 POST
      curl_setopt( $ch, CURLOPT_POSTFIELDS, $dataString );// 設置請求體,提交數據包
      break;
    case 'PUT':
      curl_setopt( $ch, CURLOPT_PUT, true ); // 設置請求方式為 PUT
      // curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'PUT' );// 設置請求方式為 PUT
      curl_setopt( $ch, CURLOPT_POSTFIELDS, $dataString );//設置請求體,提交數據包
      break;
    case 'DELETE':
      curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, 'DELETE' );// 設置請求方式為 DELETE
      break;
    default:
      echo "不存在請求方式";
      die();
  }

  // 判斷是否要求 json
  if ( $json ) {
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Content-Type: application/json; charset=utf-8',
      'Content-Length: ' . strlen($dataString))
    );
  }

  // 執行操作
  $output = curl_exec( $ch ); // 執行操作
  // $code = curl_getinfo( $ch, CURLINFO_HTTP_CODE ); // 獲取返回的狀態碼
  curl_close($ch); // 關閉CURL會話
  echo $output;
}

?>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM