PHP cURL curl_share_errno() Function



The PHP cURL curl_share_errno() function is used to return an integer containing the last share curl error number in addition with curl_share_init() to manage shared cURL handles between multiple cURL requests.

Syntax

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

int curl_share_errno ( resource $sh )

Parameters

This function accepts $sh parameter which is a cURL share handle returned by curl_share_init().

Return Value

The curl_share_errno() function returns an integer representing the last cURL share handle error number. If there were no errors 0 is returned.

PHP Version

First introduced in core PHP 7.1.0, the curl_share_errno() function continues to function easily in PHP 8.

Example 1

Here is the basic example of the PHP cURL curl_share_errno() function to find out if there were any errors related to the cURL share handle.

<?php
   // Create a cURL share handle
   $share_handle = curl_share_init();
   
   // Perform some cURL operations...
   curl_setopt($ch, CURLOPT_URL, 'https://abc123.com');
   curl_setopt($ch, CURLOPT_SHARE, $share_handle);
   
   // Check for errors
   if (($errno = curl_share_errno($share_handle)) !== 0) {
       echo "cURL share error: " . curl_strerror($errno);
   }
   
   // Close the cURL share handle
   curl_share_close($share_handle);
?>

Output

Here is the outcome of the following code −

cURL share error: URL using bad/illegal format or missing URL

Example 2

In the below PHP code we will try to use the curl_share_errno() function to check errors in a user defined function.

<?php
   function perform_curl_request($url) {
      $share_handle = curl_share_init();
  
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_SHARE, $share_handle);
  
      if (($errno = curl_share_errno($share_handle)) !== 0) {
          echo "Error: " . curl_strerror($errno);
      }
  
      curl_close($ch);
      curl_share_close($share_handle);
  }
  
  perform_curl_request('https://abc123.com');
?> 

Output

This will generate the below output −

Error: Share handle must be used with multiple easy handles

Example 3

Now the below code we will use the curl_share_errno() function to handle errors in a loop.

<?php
   // Array of URLs
   $urls = array('https://abc123.com', 'https://abc123.org');

   $share_handle = curl_share_init();
   
   foreach ($urls as $url) {
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_SHARE, $share_handle);
   
       if (($errno = curl_share_errno($share_handle)) !== 0) {
           echo "Error for URL $url: " . curl_strerror($errno);
       }
   
       curl_close($ch);
   }
   
   curl_share_close($share_handle);
?> 

Output

This will create the below output −

Error for URL https://abc123.com: Could not resolve host: abc123.com
Error for URL https://abc123.org: SSL certificate problem: unable to get local issuer certificate
php_function_reference.htm
Advertisements