protected function emitCookies(array $cookies)
{
foreach ((array) $cookies as $cookie) {
if (strpos($cookie, '";"') !== false) {
$cookie = str_replace('";"', "{__cookie_replace__}", $cookie);
$parts = str_replace("{__cookie_replace__}", '";"', explode(';', $cookie));
} else {
$parts = preg_split('/\\;[ \\t]*/', $cookie);
}
list($name, $value) = explode('=', array_shift($parts), 2);
$data = ['name' => urldecode($name), 'value' => urldecode($value), 'expires' => 0, 'path' => '', 'domain' => '', 'secure' => false, 'httponly' => false];
foreach ($parts as $part) {
if (strpos($part, '=') !== false) {
list($key, $value) = explode('=', $part);
} else {
$key = $part;
$value = true;
}
$key = strtolower($key);
$data[$key] = $value;
}
if (!empty($data['expires'])) {
$data['expires'] = strtotime($data['expires']);
}
setcookie($data['name'], $data['value'], $data['expires'], $data['path'], $data['domain'], $data['secure'], $data['httponly']);
}
}