函式名稱: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請求。