查詢

curl_copy_handle()函式—用法及示例

「 建立一個現有CURL會話的副本,包括所有選項和控制代碼狀態 」


函式名稱:curl_copy_handle()

適用版本:PHP 5.5.0及以上版本

用法:curl_copy_handle()函式用於建立一個現有CURL會話的副本,包括所有選項和控制代碼狀態。這對於需要多次執行相同的HTTP請求非常有用。

語法:resource curl_copy_handle(resource $ch)

引數:

  • $ch:現有CURL會話控制代碼

返回值:返回建立的CURL會話副本的控制代碼,如果失敗則返回FALSE。

示例:

// 建立一個CURL會話
$ch = curl_init('https://www.example.com/api');

// 設定CURL選項
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['name' => 'John', 'email' => '[email protected]']));

// 執行第一次請求
$response1 = curl_exec($ch);

// 建立CURL會話的副本
$chCopy = curl_copy_handle($ch);

// 設定副本的CURL選項
curl_setopt($chCopy, CURLOPT_POSTFIELDS, json_encode(['name' => 'Jane', 'email' => '[email protected]']));

// 執行副本的請求
$response2 = curl_exec($chCopy);

// 關閉CURL會話及副本
curl_close($ch);
curl_close($chCopy);

// 輸出結果
echo "Response 1: $response1\n";
echo "Response 2: $response2\n";

在上面的示例中,首先透過curl_init()建立一個CURL會話,並使用curl_setopt()設定相關選項。然後使用curl_exec()執行第一次請求並儲存結果。接下來,使用curl_copy_handle()建立CURL會話的副本,並使用curl_setopt()設定副本的其他選項。然後再次使用curl_exec()執行副本的請求並儲存結果。最後使用curl_close()關閉原始CURL會話及副本。最終將兩次請求的結果輸出到螢幕上。

注意:副本會繼承原始會話的所有選項和狀態,但副本和原始會話是相互獨立的,它們可以獨立地設定和執行不同的HTTP請求。

補充糾錯
上一個函式: curl_errno()函式
下一個函式: curl_error()函式
熱門PHP函式
分享連結