PHP cURL curl_getinfo() Function



The PHP cURL curl_getinfo() function is used to get information about the last transfer. This function can return information like the URL, HTTP code, content type, and other details in response to a cURL request.

Syntax

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

mixed curl_getinfo (resource $ch, int $option)

Parameters

Below are the parameters of the curl_getinfo() function −

  • $ch − It is the cURL handle returned by curl_init().

  • $option − It is the specific information field you want to retrieve.

Return Value

The curl_getinfo() function returns different values depending on whether or not the $option parameter is used. And FALSE on failure.

PHP Version

First introduced in core PHP 4.0.4, the curl_getinfo() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

First we will show you the basic example of the PHP cURL curl_getinfo() function to get the information about the last transfer.

<?php
   // Create a cURL handle
   $ch = curl_init('http://www.tutorialspoint.com/');

   // Execute the cURL handle
   curl_exec($ch);

   // Now check if there is any error occurred
   if (!curl_errno($ch)) {
   $info = curl_getinfo($ch);
   echo 'It took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n";
   }

   // Close handle
   curl_close($ch);

Output

Here is the outcome of the following code −

It took 0.569333 seconds to send a request to http://www.tutorialspoint.com/

Example 2

In the below PHP code we will try to use the curl_getinfo() function and also provide the optional parameter CURLINFO_HTTP_CODE.

<?php
   // Generate a cURL handle
   $ch = curl_init('https://www.tutorix.com');

   // Execute the cURL handle
   curl_exec($ch);

   // Here we will check HTTP status code
   if (!curl_errno($ch)) {
   switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
      case 200:  # OK
         break;
      default:
         echo 'There is unexpected HTTP code: ', $http_code, "\n";
      }
   }

   // Close the handle
   curl_close($ch);
?> 

Output

This will show the page of the given URL −

curl_getinfo Output

Example 3

Now the below code retrieves specific information from curl_getinfo(), and prints it.

<?php
   // Initialize a cURL session
   $ch = curl_init();

   // Set the URL and other options
   curl_setopt($ch, CURLOPT_URL, "https://www.tutorialspoint.com/");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

   // Execute the cURL session
   $response = curl_exec($ch);

   // Check for cURL errors
   if (curl_errno($ch)) {
      echo 'cURL error: ' . curl_error($ch);
   } else {
      // Get specific information about the cURL session
      $url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
      $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
      $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
      $total_time = curl_getinfo($ch, CURLINFO_TOTAL_TIME);

      // Display the information
      echo "URL: " . $url . "\n";
      echo "HTTP Code: " . $http_code . "\n";
      echo "Content Type: " . $content_type . "\n";
      echo "Total Time: " . $total_time . " seconds\n";
   }

   // Close the cURL session
   curl_close($ch);
?> 

Output

This will create the below output −

URL: https://www.tutorialspoint.com/
HTTP Code: 302
Content Type: text/html; charset=UTF-8
Total Time: 0.303004 seconds

Example 4

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

<?php
   // Initialize a cURL session
   $ch = curl_init();

   // Set the URL and other options
   curl_setopt($ch, CURLOPT_URL, "https://www.tutorialspoint.com/");
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

   // Execute the cURL session
   $response = curl_exec($ch);

   // Check for cURL errors
   if (curl_errno($ch)) {
      echo 'cURL error: ' . curl_error($ch);
   } else {
      // Get specific information about the cURL session
      $primary_ip = curl_getinfo($ch, CURLINFO_PRIMARY_IP);
      $redirect_count = curl_getinfo($ch, CURLINFO_REDIRECT_COUNT);

      // Display the information
      echo "Primary IP: " . $primary_ip . "\n";
      echo "Redirect Count: " . $redirect_count . "\n";
   }

   // Close the cURL session
   curl_close($ch);
?> 

Output

Following is the output of the above code −

Primary IP: 96.174.205.13
Redirect Count: 0

Important Note

When the handle is reused, the information received by this function is kept. This means that if a statistic is overridden internally by this function, the previous information is used.

php_function_reference.htm
Advertisements