(PHP 8 >= 8.5.0)
curl_share_init_persistent — 初始化 持久 cURL 共享句柄
$share_options
使用指定的共享选项初始化持久 cURL 共享句柄。与 curl_share_init() 不同,此函数创建的句柄不会在 PHP 请求结束时销毁。如果找到具有相同 share_options 的持久共享句柄,则会重用该句柄。
share_options
CURL_LOCK_DATA_*
注意: 不允许使用 CURL_LOCK_DATA_COOKIE,如果指定,此函数将抛出 ValueError。在 PHP 请求之间共享 cookies 可能导致用户之间的敏感 cookies 意外混淆。
CURL_LOCK_DATA_COOKIE
返回 CurlSharePersistentHandle。
示例 #1 curl_share_init_persistent() 示例
此示例将创建持久 cURL 共享句柄,并演示它们之间共享连接的功能。如果在长生命周期的 PHP SAPI 中执行,$sh 将在 SAPI 请求之间保持存在。
$sh
<?php // 创建或获取持久 cURL 共享句柄,设置为共享 DNS 查找和连接 $sh = curl_share_init_persistent([CURL_LOCK_DATA_DNS, CURL_LOCK_DATA_CONNECT]); // 初始化第一个 cURL 句柄并为其分配共享句柄 $ch1 = curl_init("http://example.com/"); curl_setopt($ch1, CURLOPT_SHARE, $sh); // 执行第一个 cURL 句柄。此操作可能会重用来自先前 SAPI 请求的连接 curl_exec($ch1); // 初始化第二个 cURL 句柄并为其分配共享句柄 $ch2 = curl_init("http://example.com/"); curl_setopt($ch2, CURLOPT_SHARE, $sh); // 执行第二个 cURL 句柄。此操作将重用来自 $ch1 的连接 curl_exec($ch2); ?>