Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

PHP cURL curl_share_setopt() Function



The PHP cURL curl_share_setopt() function is used to options for a cURL share handle. This function will allow you to share data between multiple cURL handles for example cookies and DNS cache.

Syntax

Below is the syntax of the PHP cURL curl_share_setopt() function −

bool curl_share_setopt (resource $sh, int $option, mixed $value)

Parameters

Below are the parameters of the curl_share_setopt() function −

  • $sh − It is the cURL share handle returned by curl_share_init().

  • $option − It is the option to set like CURLSHOPT_SHARE, CURLSHOPT_UNSHARE.

  • $value − It is the value for the option. It can be CURL_LOCK_DATA_COOKIE, CURL_LOCK_DATA_DNS or CURL_LOCK_DATA_SSL_SESSION.

Return Value

The curl_share_setopt() function returns TRUE on success and FALSE on failure.

PHP Version

First introduced in core PHP 5.5.0, the curl_share_setopt() function continues to function easily in PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP cURL curl_share_setopt() function to set an option to share cookies.

<?php
   // Create a cURL share handle
   $sh = curl_share_init();
   
   // Set an option 
   curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
   
   // Create a cURL handle
   $ch = curl_init('http://example.com');
   
   // Set the cURL handle 
   curl_setopt($ch, CURLOPT_SHARE, $sh);
   
   // Execute the cURL session
   curl_exec($ch);
   
   // Close the cURL handle
   curl_close($ch);
   
   // Close the share handle
   curl_share_close($sh);
?>

Output

Here is the content of the URL will be displayed −

curl_share_setopt Output

Example 2

In the below PHP code we will use the curl_share_setopt() function to set an option to share DNS cache like CURLSHOPT_SHARE and CURL_LOCK_DATA_DNS.

<?php
   // Create a cURL share handle
   $sh = curl_share_init();
   
   // Set an option 
   curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
   
   // Create a cURL handle
   $ch1 = curl_init('http://example1.com');
   $ch2 = curl_init('http://example2.com');
   
   // Set the cURL handles 
   curl_setopt($ch1, CURLOPT_SHARE, $sh);
   curl_setopt($ch2, CURLOPT_SHARE, $sh);
   
   // Execute the cURL sessions
   curl_exec($ch1);
   curl_exec($ch2);
   
   // Close the cURL handles
   curl_close($ch1);
   curl_close($ch2);
   
   // Close the share handle
   curl_share_close($sh);   
?> 

Output

Here URL content will be displayed −

curl_share_setopt Output

Example 3

Now the below code sets an option to share SSL sessions with the help of curl_share_setopt() function using CURLSHOPT_SHARE and CURL_LOCK_DATA_SSL_SESSION.

<?php
   // Create a cURL share handle
   $sh = curl_share_init();
   
   // Set an option to share SSL sessions
   curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
   
   // Create a cURL handle
   $ch = curl_init('https://acb123.com');
   
   // Set the cURL handle to use the share handle
   curl_setopt($ch, CURLOPT_SHARE, $sh);
   
   // Execute the cURL session
   curl_exec($ch);
   
   // Unshare SSL sessions
   curl_share_setopt($sh, CURLSHOPT_UNSHARE, CURL_LOCK_DATA_SSL_SESSION);
   
   // Close the cURL handle
   curl_close($ch);
   
   // Close the share handle
   curl_share_close($sh);
   
?> 

Output

This will create the below output −

curl_share_setopt Output
php_function_reference.htm
Advertisements