[英]PHP get raw cookie
也许这是一个重复的问题,但我找不到。
问题是我在浏览器中有一个存储的cookie,例如username=test+1@test.com
,当我从php $_COOKIE["username"]
读取它时,得到的是test 1@test.com
。 我想要的cookie不带URL解码,只是浏览器发送它的方式。 我知道存在setrawcookie()
,我想要类似的东西(例如getrawcookie
)。
谢谢
基于dubafek的评论,我构建了此程序以获取原始Cookie值:
$raw_cookies = (array_reduce(
explode(';', $_SERVER['HTTP_COOKIE'] ?? ''),
function($carry, $item) {
$pair_arr = explode('=', $item);
$carry[ trim($pair_arr[0]) ] = trim($pair_arr[1]);
return $carry;
},
[]
) ?: []);
从那里可以像$_COOKIE
一样使用$raw_cookies
。 在curl调用中转发cookie时,我需要具有原始值。
编辑: $raw_cookies
和$_COOKIE
的键之间有细微差别。 例如,带有键connect.sid
的cookie将出现在$_COOKIE['connect_sid']
和$raw_cookies['connect.sid']
。 我不确定PHP对cookie键进行了哪些转换,因此在您的特定实现中可能需要考虑也可能不需要考虑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.