php curl curloptcookiefile,php – 使用cURL的CURLOPT_COOKIEFILE选项处理多个请求

本文探讨了在PHP中使用curl时,CURLOPT_COOKIEJAR和CURLOPT_COOKIEFILE在多用户同时访问时可能遇到的问题,并提供了非标准方法来设置和检索Cookie,以避免文件混乱。作者建议直接操作http头以实现更稳定的cookie管理。
摘要由CSDN通过智能技术生成

我正在使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值