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.