Parsing Set-Cookie Headers In PHP with Guzzle
Published: July 19, 2017
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.
Hi, I'm Max!