一、什麼是curl_setopt?
curl_setopt(resource $ch, int $option, mixed $value): bool
curl_setopt是php中curl庫的核心函數之一,用於設置一個curl transfer選項的值。
二、常用的curl_setopt選項
1. CURLOPT_URL
curl_setopt($ch, CURLOPT_URL, $url);
CURLOPT_URL選項用於設置請求的URL,可以是一個字符串或文件流。如果是文件流,同時還需設置CURLOPT_INFILE或CURLOPT_INFILESIZE選項。
2. CURLOPT_RETURNTRANSFER
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
CURLOPT_RETURNTRANSFER選項用於將curl_exec()獲取的結果返回而不是輸出到屏幕上。
3. CURLOPT_POST
curl_setopt($ch, CURLOPT_POST, true);
CURLOPT_POST選項用於設置請求方式為POST。
4. CURLOPT_POSTFIELDS
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
CURLOPT_POSTFIELDS選項用於設置POST請求的數據,可以是一個數組或字符串。
三、其他常用選項
1. CURLOPT_HTTPHEADER
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray);
CURLOPT_HTTPHEADER選項用於設置HTTP請求頭,通常用於傳遞API密鑰等參數。
2. CURLOPT_TIMEOUT
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
CURLOPT_TIMEOUT選項用於設置curl請求的超時時間,單位為秒。
3. CURLOPT_SSL_VERIFYHOST
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
CURLOPT_SSL_VERIFYHOST選項用於設置SSL連接時是否驗證證書主機名。
4. CURLOPT_SSL_VERIFYPEER
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
CURLOPT_SSL_VERIFYPEER選項用於設置SSL連接時是否驗證證書。
四、完整示例代碼
$url = 'https://www.example.com/api'; $data = ['key1' => 'value1', 'key2' => 'value2']; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, ['APIKEY:xxxxxxxx']); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); print_r($result);
原創文章,作者:XFPMY,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/313729.html