curl_share_init

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_share_init初始化一个 cURL 共享句柄

说明

curl_share_init(): CurlShareHandle

允许在 cURL 句柄之间共享数据。

参数

此函数没有参数。

返回值

返回一个 cURL 共享句柄。

变更日志

版本 说明
8.0.0 此函数现在返回一个 CurlShareHandle 实例;以前,返回的是一个 resource

范例

范例 #1 curl_share_init() 例子

此示例将创建一个 cURL 共享句柄,向其中添加两个 cURL 句柄,然后运行它们并共享 cookie 数据。

<?php
// 创建 cURL 共享句柄并将其设置为共享 cookie 数据
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

// 初始化第一个 cURL 句柄并将共享句柄分配给它
$ch1 = curl_init("http://example.com/");
curl_setopt($ch1, CURLOPT_SHARE, $sh);

// 执行第一个 cURL 句柄
curl_exec($ch1);

// 初始化第二个 cURL 句柄并将共享句柄分配给它
$ch2 = curl_init("https://php.net/");
curl_setopt($ch2, CURLOPT_SHARE, $sh);

// 执行第二个 cURL 句柄
// 所有来自 $ch1 句柄的 cookie 都与 $ch2 句柄共享
curl_exec($ch2);

// 关闭 cURL 共享句柄
curl_share_close($sh);

// 关闭 cURL 句柄
curl_close($ch1);
curl_close($ch2);
?>

参见

添加备注

用户贡献的备注 1 备注

0
Robert Chapin
7 年前
Cookie 处理默认情况下是禁用的。必须在 CURLOPT_SHARE 之前使用以下命令。

curl_setopt($ch1, CURLOPT_COOKIEFILE, "");
curl_setopt($ch2, CURLOPT_COOKIEFILE, "");

此外,不要尝试将 CURLOPT_SHARE 与 curl_setopt_array 一起使用,因为这会导致选项按错误的顺序设置,从而导致失败。
To Top