【发布时间】:2021-12-30 04:09:37
【问题描述】:
我有一个这样的数组
$value = {array('id'=>$id, 'email'=>$email, 'token'=>$token)}
我想对数组进行字符串化然后编码然后将其存储在cookie“登录”中。你是怎样做的 ?另外请告诉我如何解码和读取存储的值。
编辑:
我一直在尝试序列化/反序列化,但没有按预期工作。例如,
$value = serialize(array('id'=>33, 'email'=>'big@gmail.com', 'token'=>'e9aa0966773d68e0fbf9cb21fc2877b4'));
echo $value; //a:3:{s:2:"id";i:33;s:5:"email";s:20:"big@gmail.com";s:5:"token";s:32:"e9aa0966773d68e0fbf9cb21fc2877b4";}
但是当值转到cookie时,它看起来像这样
a%3A3%3A%7Bs%3A2%3A%22id%22%3Bs%3A1%3A%226%22%3Bs%3A5%3A%22email%22%3Bs%3A20%3A%22craigcosmo%40gmail.com%22%3Bs%3A5%3A%22token%22%3Bs%3A32%3A%22e9aa0966773d68e0fbf9cb21fc2877b4%22%3B%7D
【问题讨论】:
-
cookie 永远不会是纯文本。原因在于它是如何存储在 HTTP 标头中的。
Cookie:标头使用冒号和分号等字符作为分隔符,因此需要将它们转义(PHP 基本上采用 cookie 的值并在将其输出到客户端之前对其执行 url_encode) -
所以要读取cookie值我必须先进行url_decode?span>
-
php url_decode 在构建 $_COOKIE 超全局时应该自动发生。
标签: php