Open In App

How to get cookies from curl into a variable in PHP ?

Last Updated : 31 Dec, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

The cURL standing for Client URL refers to a library for transferring data using various protocols supporting cookies, HTTP, FTP, IMAP, POP3, HTTPS (with SSL Certification), etc. This example will illustrate how to get cookies from a PHP cURL into a variable. The functions provide an option to set a callback that will be called for each response header line. The function will receive the curl object and a string with the header line. Along with their purpose, required for this example are described below:

  • curl_init(): Used to initialize a curl object.
  • curl_setopt(object, parameter, value): Used to set the value of parameter for a certain curl object.
  • curl_exec(object): Used to execute the current curl session. Called after setting the values for desired curl parameters.
  • preg_match_all(regExp, inputVariable, OutputVariable): Used to perform a global regular expression check.

Example 1: This example illustrates how to fetch cookies from www.amazon.com




<?php
   
// URL to fetch cookies
   
// Initialize cURL object
$curlObj = curl_init();
   
/* setting values to required cURL parameters.
CURLOPT_URL is used to set the URL to fetch 
CURLOPT_RETURNTRANSFER is enabled curl
response to be saved in a variable 
CURLOPT_HEADER enables curl to include
protocol header CURLOPT_SSL_VERIFYPEER
enables to fetch SSL encrypted HTTPS request.*/
curl_setopt($curlObj,  CURLOPT_URL,  $url);
curl_setopt($curlObj,  CURLOPT_RETURNTRANSFER,  1);
curl_setopt($curlObj,  CURLOPT_HEADER,  1);
curl_setopt($curlObj,  CURLOPT_SSL_VERIFYPEER,  false);
$result = curl_exec($curlObj);
   
// Matching the response to extract cookie value
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi',
          $result$match_found);
   
$cookies = array();
foreach($match_found[1] as $item) {
    parse_str($item$cookie);
    $cookies = array_merge($cookies$cookie);
}
   
// Printing cookie data
print_r( $cookies);
   
// Closing curl object instance
curl_close($curlObj);
?>


Note: Each website has its own format of storing cookies according to its requirements. Therefore, any specific format is not available for cookies.
Output:

Example 2: This example illustrates how to fetch cookies from www.google.com




<?php
  
$curlObj = curl_init();
  
curl_setopt($curlObj, CURLOPT_URL, $url);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_HEADER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec($curlObj);
      
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi',
                $result, $match_found);
$cookies = array();
  
foreach($match_found[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}
      
print_r( $cookies);
curl_close($curlObj);
?>


Output:

Note: Personal data is blurred out.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads