Implement Curl::setCookies()

This commit is contained in:
Zach Borboa
2016-12-18 11:31:38 -08:00
parent de1869b3ee
commit 296345b0a2
3 changed files with 50 additions and 0 deletions
+35
View File
@@ -728,6 +728,41 @@ class Curl
}, array_keys($this->cookies), array_values($this->cookies))));
}
/**
* Set Cookies
*
* @access public
* @param $cookies
*/
public function setCookies($cookies)
{
foreach ($cookies as $key => $value) {
$name_chars = array();
foreach (str_split($key) as $name_char) {
if (!isset($this->rfc2616[$name_char])) {
$name_chars[] = rawurlencode($name_char);
} else {
$name_chars[] = $name_char;
}
}
$value_chars = array();
foreach (str_split($value) as $value_char) {
if (!isset($this->rfc6265[$value_char])) {
$value_chars[] = rawurlencode($value_char);
} else {
$value_chars[] = $value_char;
}
}
$this->cookies[implode('', $name_chars)] = implode('', $value_chars);
}
$this->setOpt(CURLOPT_COOKIE, implode('; ', array_map(function ($k, $v) {
return $k . '=' . $v;
}, array_keys($this->cookies), array_values($this->cookies))));
}
/**
* Get Cookie
*