当您尝试在 curl_multi_add_handle() 中仅使用复制的 curl 句柄时,会发生一些内部 curl 错误 (CURLE_FAILED_INIT)。我检查了相同的有问题 PHP 代码,但略有不同:我没有创建 curl 的副本,而是使用了原始的(模板)。正如我预期的那样,代码在没有任何错误的情况下工作。我认为 curl_multi_* 以及 curl_copy_handle() 仍然很原始,需要一些改进。
此致
Vitali Simsive
(PHP 5、PHP 7、PHP 8)
curl_copy_handle — 复制 cURL句柄及其所有首选项
返回一个新的 cURL 句柄,或者在失败时返回 false
。
版本 | 描述 |
---|---|
8.0.0 |
handle 现在期望一个 CurlHandle 实例;以前,期望一个 resource。 |
8.0.0 | 成功时,此函数现在返回一个 CurlHandle 实例;以前,返回一个 resource。 |
示例 #1 复制 cURL 句柄
<?php
// 创建一个新的 cURL 资源
$ch = curl_init();
// 设置 URL 和其他适当的选项
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/');
curl_setopt($ch, CURLOPT_HEADER, 0);
// 复制句柄
$ch2 = curl_copy_handle($ch);
// 获取 URL (http://www.example.com/) 并将其传递给浏览器
curl_exec($ch2);
// 关闭 cURL 资源并释放系统资源
curl_close($ch2);
curl_close($ch);
?>
当您尝试在 curl_multi_add_handle() 中仅使用复制的 curl 句柄时,会发生一些内部 curl 错误 (CURLE_FAILED_INIT)。我检查了相同的有问题 PHP 代码,但略有不同:我没有创建 curl 的副本,而是使用了原始的(模板)。正如我预期的那样,代码在没有任何错误的情况下工作。我认为 curl_multi_* 以及 curl_copy_handle() 仍然很原始,需要一些改进。
此致
Vitali Simsive