我正在使用CURLOPT_COOKIEJAR将cookie存储到文件中,并使用CURLOPT_COOKIEFILE从文件中检索它们.
我很奇怪当多个用户同时访问脚本时会发生什么 – 它不会搞乱cookie文件的内容吗?另外,如何管理cookie文件,以便可以同时拥有多个用户?
解决方法:
CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE只是用于处理文件中的cookie的实用程序,如Web浏览器.
并不建议您使用它.
但您可以直接使用http标头来设置和检索Cookie.
为您设置cookie
curl_setopt($ch, CURLOPT_COOKIE, 'user=xxxxxxxx-xxxxxxxx');
?>
要检索cookie,只需标识以Set-Cookie开头的标头:
用法示例,快速而肮脏,但绝对不是标准.
有这个标题
$header_blob = '
Set-Cookie: PART_NUMBER=ROCKET_LAUNCHER_0001; path=/
Set-Cookie: PART_NUMBER=RIDING_ROCKET_0023; path=/ammo
';
提取cookie标头
$cookies = array();
if (preg_match_all('/Set-Cookie:\s*(?P.+?);/i', $header_blob, $matches)) {
foreach ($matches['cookies'] as $cookie) {
$cookies[] = $cookie;
}
$cookies = array_unique($cookies);
}
var_dump($cookies);
重新发送cookie
$cookie_blob = implode('; ', $cookies);
var_dump($cookie_blob);
标签:php,curl,cookies
来源: https://codeday.me/bug/20190526/1157037.html