- PHP Manual
- cURL Functions
- Set an option for a cURL share handle
Contents
curl_share_setopt
(PHP 5 >= 5.5.0, PHP 7)
curl_share_setopt — Set an option for a cURL share handle
Description
curl_share_setopt
( CurlShareHandle $share_handle
, int $option
, mixed $value
) : bool
Sets an option on the given cURL share handle.
Parameters
share_handle
A cURL share handle returned by curl_share_init().
option
- {|
! Option
! Description
|-
|
CURLSHOPT_SHARE
| Specifies a type of data that should be shared. |- |CURLSHOPT_UNSHARE
| Specifies a type of data that will be no longer shared. |} value
- {|
! Value
! Description
|-
|
CURL_LOCK_DATA_COOKIE
| Shares cookie data. |- |CURL_LOCK_DATA_DNS
| Shares DNS cache. Note that when you use cURL multi handles, all handles added to the same multi handle will share DNS cache by default. |- |CURL_LOCK_DATA_SSL_SESSION
| Shares SSL session IDs, reducing the time spent on the SSL handshake when reconnecting to the same server. Note that SSL session IDs are reused within the same handle by default. |}
Return Values
Returns TRUE
on success or FALSE
on failure.
Changelog
Version | Description |
---|---|
8.0.0 | share_handle expects a CurlShareHandle
instance now; previously, a resource was expected. |
Examples
Example #1 curl_share_setopt() example
This example will create a cURL share handle, add two cURL handles to it, and then run them with cookie data sharing.
<?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/%22);curl_setopt($ch1, CURLOPT_SHARE, $sh);// Execute the first cURL handlecurl_exec($ch1);// Initialize the second cURL handle and assign the share handle to it$ch2 = curl_init("http://php.net/%22);curl_setopt($ch2, CURLOPT_SHARE, $sh);// Execute the second cURL handle// all cookies from $ch1 handle are shared with $ch2 handlecurl_exec($ch2);// Close the cURL share handlecurl_share_close($sh);// Close the cURL handlescurl_close($ch1);curl_close($ch2);?>