Open In App

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

Last Updated : 31 Dec, 2019
Comments
Improve
Suggest changes
Like Article
Like
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
<?php
 
// URL to fetch cookies
$url = "https://www.amazon.com/";
 
// 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
<?php

$url = "https://www.google.com/";
$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.

Next Article

Similar Reads