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

31 Dec, 2019
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$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 curlresponse to be saved in a variable CURLOPT_HEADER enables curl to includeprotocol header CURLOPT_SSL_VERIFYPEERenables 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 valuepreg_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 dataprint_r( $cookies);   // Closing curl object instancecurl_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  $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.
PHP-cURL
PHP-Misc
Picked
PHP
Web Technologies
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Insert Form Data into Database using PHP ?
How to convert array to string in PHP ?
How to Upload Image into Database and Display it using PHP ?
How to check whether an array is empty using PHP?
PHP | Converting string to Date and DateTime
Remove elements from a JavaScript Array
Installation of Node.js on Linux
Convert a string to an integer in JavaScript
How to fetch data from an API in ReactJS ?
How to insert spaces/tabs in text using HTML/CSS?