Parsing Set-Cookie Headers In PHP with Guzzle

Published: July 19, 2017

Tags:

I recently had the need to extract the value of a Set-Cookie response header in PHP. Google lead me http_parse_cookie. Unfortunately, http_parse_cookie requires pecl_http which isn’t available with PHP out of box, and is a pain to install.

Other Google results suggest defining your own function.

After a bit of research, I found the SetCookie class in Guzzle. The implementation is really clean and is the best option for parsing Set-Cookie headers in PHP in my opinion.

Here’s a quick overview of how to use it…

How To Use It

Usage in pretty simple. The easiest way to use Guzzle is via composer. Once you’ve autoloaded the library, you pass the Set-Cookie header as an argument to GuzzleHttp\Cookie\SetCookie’s fromString method as follows…

use GuzzleHttp\Cookie\SetCookie as CookieParser;

$cookieParser = new CookieParser;
$cookie = $cookierParser->fromString('Set-Cookie: key=value');

Now you can conveniently interact with the $cookie

echo $cookie->getName(); // key
echo $cookie->getValue(); // value

You can also access many other aspects of the cookie

echo $cookie->getExpires();
echo $cookie->getHttpOnly();
echo $cookie->getSecure();

Check the Set-Cookie class for a full list of available methods…

Conclusion

I hope this post came in useful for some people. If you have any questions or comments, feel free to drop a note below, or, as always, you can reach me on Twitter as well.

Max ChadwickHi, I'm Max!

I'm a software developer who mainly works in PHP, but also dabbles in Ruby and Go. Technical topics that interest me are monitoring, security and performance.

During the day I solve challenging technical problems at Something Digital where I mainly work with the Magento platform. I also blog about tech, work on open source and hunt for bugs.

If you'd like to get in touch with me the best way is on Twitter.