/** * Parse the cookie header and set the internal cookies. * * @param string $header */ protected function processCookieHeader($header) { $items = explode(';', $header); $cookies = array(); foreach ($items as $cookieString) { $parts = explode('=', $cookieString, 2); $cookie = new Customweb_Core_Http_Cookie(); $cookie->setRawName($parts[0])->setRawValue($parts[1]); $cookies[$cookie->getName()] = $cookie->getValue(); } $this->cookies = $cookies; }
/** * Parses the given header value into a set of cookies. * * @param string $value */ protected function processCookieHeader($value) { $pairs = explode(';', $value); $expiryDate = null; $domain = null; $path = null; $values = array(); $httpOnly = false; $secure = false; foreach ($pairs as $pair) { $keyValues = explode('=', trim($pair), 2); if (count($keyValues) == 2) { switch (strtolower($keyValues[0])) { case Customweb_Core_Http_ICookie::KEY_PATH: $path = urldecode(trim($keyValues[1])); break; case Customweb_Core_Http_ICookie::KEY_DOMAIN: $domain = urldecode(trim($keyValues[1])); break; case Customweb_Core_Http_ICookie::KEY_EXPIRY_DATE: $expiryDate = strtotime(urldecode(trim($keyValues[1]))); break; default: $values[trim($keyValues[0])] = trim($keyValues[1]); } } else { if (count($keyValues) == 1) { switch (strtolower($keyValues[0])) { case Customweb_Core_Http_ICookie::KEY_HTTP_ONLY: $httpOnly = true; break; case Customweb_Core_Http_ICookie::KEY_SECURE: $secure = true; break; default: $values[trim($keyValues[0])] = null; } } } } $cookies = array(); foreach ($values as $key => $value) { $cookie = new Customweb_Core_Http_Cookie(); $cookie->setRawName($key)->setRawValue($value)->setDomain($domain)->setPath($path)->setExpiryDate($expiryDate)->setHttpOnly($httpOnly)->setSecure($secure); $this->cookies[$cookie->getName()] = $cookie; } }