{
protected $cookieJar = array();
- /**
- * Sets a cookie.
- *
- * @param Cookie $cookie A Cookie instance
- */
public function set(Cookie $cookie)
{
$this->cookieJar[$cookie->getDomain()][$cookie->getPath()][$cookie->getName()] = $cookie;
{
$this->flushExpiredCookies();
- if (!empty($domain)) {
- foreach ($this->cookieJar as $cookieDomain => $pathCookies) {
- if ($cookieDomain) {
- $cookieDomain = '.'.ltrim($cookieDomain, '.');
- if ($cookieDomain != substr('.'.$domain, -strlen($cookieDomain))) {
- continue;
- }
- }
-
- foreach ($pathCookies as $cookiePath => $namedCookies) {
- if ($cookiePath != substr($path, 0, strlen($cookiePath))) {
- continue;
- }
- if (isset($namedCookies[$name])) {
- return $namedCookies[$name];
- }
+ foreach ($this->cookieJar as $cookieDomain => $pathCookies) {
+ if ($cookieDomain && $domain) {
+ $cookieDomain = '.'.ltrim($cookieDomain, '.');
+ if ($cookieDomain !== substr('.'.$domain, -\strlen($cookieDomain))) {
+ continue;
}
}
- return;
- }
-
- // avoid relying on this behavior that is mainly here for BC reasons
- foreach ($this->cookieJar as $cookies) {
- if (isset($cookies[$path][$name])) {
- return $cookies[$path][$name];
+ foreach ($pathCookies as $cookiePath => $namedCookies) {
+ if (0 !== strpos($path, $cookiePath)) {
+ continue;
+ }
+ if (isset($namedCookies[$name])) {
+ return $namedCookies[$name];
+ }
}
}
}
if (0 === $i || preg_match('/^(?P<token>\s*[0-9A-Za-z!#\$%\&\'\*\+\-\.^_`\|~]+)=/', $part)) {
$cookies[] = ltrim($part);
} else {
- $cookies[count($cookies) - 1] .= ','.$part;
+ $cookies[\count($cookies) - 1] .= ','.$part;
}
}
}
foreach ($this->cookieJar as $domain => $pathCookies) {
if ($domain) {
$domain = '.'.ltrim($domain, '.');
- if ($domain != substr('.'.$parts['host'], -strlen($domain))) {
+ if ($domain != substr('.'.$parts['host'], -\strlen($domain))) {
continue;
}
}
foreach ($pathCookies as $path => $namedCookies) {
- if ($path != substr($parts['path'], 0, strlen($path))) {
+ if ($path != substr($parts['path'], 0, \strlen($path))) {
continue;
}