繁体   English   中英

PHP获取原始cookie

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM