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

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.




