CURL是一個非常強大的開源庫,支持很多協議,包括HTTP、FTP、TELNET等,我們使用它來發送HTTP請求。它給我 們帶來的好處是可以通過靈活的選項設置不同的HTTP協議參數,並且支持HTTPS。CURL可以根據URL首碼是“HTTP” 還是“HTTPS”自動選擇是否加密發送內容。 使用CUR ...
CURL是一個非常強大的開源庫,支持很多協議,包括HTTP、FTP、TELNET等,我們使用它來發送HTTP請求。它給我 們帶來的好處是可以通過靈活的選項設置不同的HTTP協議參數,並且支持HTTPS。CURL可以根據URL首碼是“HTTP” 還是“HTTPS”自動選擇是否加密發送內容。
使用CURL的PHP擴展完成一個HTTP請求的發送一般有以下幾個步驟:
- 初始化連接句柄;
- 設置CURL選項;
- 執行並獲取結果;
- 釋放VURL連接句柄。
PHP.ini擴展開啟
//使用curl發送請求 第一個參數發送的url地址,第二個參數是否發送post請求,預設是發送get請求,第三個就是請求的參數,第四個參數是否發送https function curl_request($url, $post=false, $param=[], $https = false) { //curl_init 初始化的時候傳遞url $ch = curl_init($url); //curl_setopt 設置一些請求選項,當然get是預設的也是最好處理的 if($post){ //設置請求方式和請求參數,post請求,要設置的類型就是bool型的,那麼我們肯定是啟用的設置為true,POSTFILEDS是傳遞的參數,它的第三個參數就是傳遞的參數可以為一個數組類型的也就是我們的param curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); } // https請求,預設會進行驗證 if($https){ //禁止從伺服器端 驗證客戶端的證書,註意7.10開始預設為開啟驗證的!!! curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } //curl_exec 執行請求會話(發送請求) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $res = curl_exec($ch); //curl_close 關閉請求會話 curl_close($ch); return $res; }
官網說明:
1、CURLOPT_POST
TRUE
時會發送 POST 請求,類型為:application/x-www-form-urlencoded,是 HTML 表單提交時最常見的一種。
2、CURLOPT_POSTFIELDS
操作來發送。要發送文件,在文件名前面加上@首碼並使用完整路徑。文件類型可在文件名後以 ';type=mimetype' 的格式指定。這個參數可以是 urlencoded 後的字元串,類似'para1=val1¶2=val2&...',也可以使用一個以欄位名為鍵值,欄位數據為值的數組。如果value是一個數組,Content-Type頭將會被設置成multipart/form-data。 從 PHP 5.2.0 開始,使用 @ 首碼傳遞文件時,value 必須是個數組。 從 PHP 5.5.0 開始, @ 首碼已被廢棄,文件可通過 CURLFile 發送。設置 CURLOPT_SAFE_UPLOAD 為 TRUE 可禁用 @ 首碼發送文件,以增加安全性。
3、CURLOPT_SSL_VERIFYPEER
FALSE 禁止 cURL 驗證對等證書(peer'scertificate)。要驗證的交換證書可以在 CURLOPT_CAINFO 選項中設置,或在 CURLOPT_CAPATH中設置證書目錄
如果有什麼的不對的地方也請您不吝嗇的指出錯誤!!!!謝謝!!!