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.