Home > Backend Development > PHP Tutorial > How Can I Extract Cookies from a PHP Curl Response into a Variable?

How Can I Extract Cookies from a PHP Curl Response into a Variable?

Barbara Streisand
Release: 2024-12-22 15:12:11
Original
813 people have browsed it

How Can I Extract Cookies from a PHP Curl Response into a Variable?

Retrieving Cookies from PHP Curl Response into a Variable

In certain scenarios, external API responses may be inexplicably embedded as cookies within the HTTP header, instead of utilizing conventional communication protocols like SOAP or REST. To facilitate the extraction of these cookies into a structured array without resorting to laborious parsing, the following technique can be employed.

Utilizing the PHP Curl extension, you can retrieve the HTTP response, including the cookies, using the following code:

$ch = curl_init('http://www.google.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Retrieve headers too
curl_setopt($ch, CURLOPT_HEADER, 1);
$result = curl_exec($ch);
Copy after login

To extract the cookies from the response, regular expressions can be employed:

// Extract cookies using regular expressions
preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $result, $matches);
Copy after login

The $matches array will contain all the cookies found in the response. To convert this into a more useful format, each cookie string can be parsed into an array using parse_str:

$cookies = array();
foreach($matches[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}
Copy after login

Finally, you can access the cookies in the $cookies array. This approach effectively extracts cookies from the curl response without the need for complex parsing or file-based operations.

The above is the detailed content of How Can I Extract Cookies from a PHP Curl Response into a Variable?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template