PHP中的cURL庫是一種強大的工具,能夠幫助我們做很多與網絡通訊相關的事情。本文將詳細介紹cURL庫中的參數以及它們的作用。
curl_init
curl_init()函數用于初始化一個cURL會話。它可以接受一個可選的URL參數,如果傳入了一個URL,它將自動把該URL設置為會話的URL選項。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_exec($ch); curl_close($ch);
CURLOPT_RETURNTRANSFER
CURLOPT_RETURNTRANSFER用于返回輸出結果而不是直接輸出到瀏覽器。當執行 cURL 請求時,在請求完畢后會有返回結果,但默認情況下,cURL 不會將請求結果返回給變量。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); curl_close($ch); echo $output;
CURLOPT_POST
當進行 POST 請求時,需要將 CURLOPT_POST 設置為 true。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, "name=test&age=30"); curl_exec($ch); curl_close($ch);
CURLOPT_POSTFIELDS
當使用 POST 方法時,需要指定 CURLOPT_POSTFIELDS 的值為一組鍵值對。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, array('name' =>'test', 'age' =>'30')); curl_exec($ch); curl_close($ch);
CURLOPT_HTTPHEADER
當需要設置 HTTP 頭文件時,可以使用 CURLOPT_HTTPHEADER 參數。
$headers = array( 'Content-type: text/html; charset=utf-8', 'Authorization: Bearer '.$token, ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_exec($ch); curl_close($ch);
CURLOPT_SSL_VERIFYHOST
當需要對 SSL 證書進行驗證時,可以使用 CURLOPT_SSL_VERIFYHOST 參數。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.example.com/"); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_exec($ch); curl_close($ch);
CURLOPT_SSL_VERIFYPEER
使用 CURLOPT_SSL_VERIFYPEER 參數可以對證書進行驗證。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://www.example.com/"); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_exec($ch); curl_close($ch);
CURLOPT_USERAGENT
CURLOPT_USERAGENT 參數用于設置 User-Agent。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"); curl_exec($ch); curl_close($ch);
CURLOPT_COOKIEFILE and CURLOPT_COOKIEJAR
當需要處理 cookie 時,可以使用 CURLOPT_COOKIEFILE 來指定 cookie 文件,使用 CURLOPT_COOKIEJAR 來將 cookie 寫入文件。
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookiefile'); curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookiefile'); curl_exec($ch); curl_close($ch);
以上是 CURL 中一些常用參數的用法介紹。熟練使用這些參數,能夠較為方便的完成網絡數據的傳遞與獲取。當然,CURL 中還有很多其他參數,讀者可自行查閱文檔掌握。