• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • curl_share_setopt()

    (PHP 5 >= 5.5.0, PHP 7)

    为 cURL 共享句柄设置选项。

    说明

    curl_share_setopt(resource $sh,int $option,string $value): bool

    为给定的 cURL 共享句柄设置一个选项。

    参数

    $sh

    一个由curl_share_init()函数返回的 cURL 共享句柄。

    $option
    OptionDescription
    CURLSHOPT_SHARE指定要共享的数据类型。
    CURLSHOPT_UNSHARE指定不再共享的数据类型。
    $value
    ValueDescription
    CURL_LOCK_DATA_COOKIE共享 cookie 数据。
    CURL_LOCK_DATA_DNS共享 DNS 缓存。注意,当你使用 cURL 多句柄时,默认所有添加在同一个多句柄的句柄都将会共享 DNS 缓存。
    CURL_LOCK_DATA_SSL_SESSION共享 SSL 的 session ID,在重连同样的服务器时减少 SSL 握手时间。注意,SSL 的 session ID 在同一个的句柄中默认是重复使用的。

    返回值

    成功时返回TRUE,或者在失败时返回FALSE

    范例

    curl_share_setopt()函数的范例:

    以下范例将会创建一个 cURL 共享句柄,并且往其中添加两个 cURL 句柄,最后共享这两个 cURL 句柄的 cookie 数据运行。

    <?php
    // Create cURL share handle and set it to share cookie data
    $sh = curl_share_init();
    curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
    // Initialize the first cURL handle and assign the share handle to it
    $ch1 = curl_init("http://example.com/");
    curl_setopt($ch1, CURLOPT_SHARE, $sh);
    // Execute the first cURL handle
    curl_exec($ch1);
    // Initialize the second cURL handle and assign the share handle to it
    $ch2 = curl_init("http://php.net/");
    curl_setopt($ch2, CURLOPT_SHARE, $sh);
    // Execute the second cURL handle
    //  all cookies from $ch1 handle are shared with $ch2 handle
    curl_exec($ch2);
    // Close the cURL share handle
    curl_share_close($sh);
    // Close the cURL handles
    curl_close($ch1);
    curl_close($ch2);
    ?>