2025年4月30日 星期三 农历 下月5日立夏 English | 简体中文 | 繁體中文
查询

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' => 'john@example.com']));

// 执行第一次请求
$response1 = curl_exec($ch);

// 创建CURL会话的副本
$chCopy = curl_copy_handle($ch);

// 设置副本的CURL选项
curl_setopt($chCopy, CURLOPT_POSTFIELDS, json_encode(['name' => 'Jane', 'email' => 'jane@example.com']));

// 执行副本的请求
$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函数