PHP cURL curl_upkeep() Function



The PHP cURL curl_upkeep() function is used to perform connection upkeep for a given cURL handle. This keeps the connections open and saves you from having to close and reopen them for each request.

Syntax

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

bool curl_upkeep (resource $ch)

Parameters

This function accepts $ch parameter which is a cURL handle returned by curl_init().

Return Value

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

PHP Version

This function introduced in the PHP 8.2.0.

Example 1

First we will show you the basic example of the PHP cURL curl_upkeep() function to return an array with information on the upkeep process.

<?php
   // Mention URL here
   $url = "https://example.com";

   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($ch, CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_2_0);
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_UPKEEP_INTERVAL_MS, 200);
   if (curl_exec($ch)) {
       usleep(300);
       var_dump(curl_upkeep($ch));
   }
   curl_close($ch);
?>

Output

Here is the outcome of the following code −

array(1) {
  ["total_time"]=>
  float(0.123456)
}

Example 2

In the below PHP code we will try to use the curl_upkeep() function to perform upkeep on the given cURL handle.

<?php
   // Start a cURL session
   $ch = curl_init("http://example.com");
   
   // Set an option for the cURL transfer
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   
   // Perform upkeep on the cURL handle
   $result = curl_upkeep($ch);
   
   // Check if upkeep was successful
   if ($result) {
       echo "Upkeep was successful!";
   } else {
       echo "Upkeep failed.";
   }
   
   // Close the cURL session
   curl_close($ch);   
?> 

Output

This will generate the below output −

Upkeep was successful!

Example 3

Now the below code to keep connection alive using the curl_upkeep() function. So the code will perform two requests. First request to keep connection alive and second request using the same connection.

<?php
   // Start the cURL handle
   $ch = curl_init("http://example.com");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   
   // Perform a request
   $response = curl_exec($ch);
   
   // Perform upkeep to keep the connection alive
   curl_upkeep($ch);
   
   // Perform another request using the same connection
   $response2 = curl_exec($ch);
   
   // Check responses
   echo $response;
   echo $response2;
   
   curl_close($ch);
?> 

Output

This will create the below output −

curl_upkeep Output

Example 4

In the following example, we are using the curl_upkeep() function to get the fetch the primary IP address with the number of redirects.

<?php
   // Start the cURL handle
   $ch = curl_init("http://example.com");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
   
   for ($i = 0; $i < 5; $i++) {
       // Perform upkeep at each iteration
       curl_upkeep($ch);
   
       // Perform a request
       $response = curl_exec($ch);
       echo $response;
   }
   
   curl_close($ch);
?> 

Output

This will display the webpage 5 times because of the loop −

curl_upkeep example 4

Summary

The curl_upkeep() function to perform connection upkeep for a given cURL handle. So we have seen four examples to show how to use the function in various cases to maintain a cURL connection.

php_function_reference.htm
Advertisements