最新在做公众号 H5 页面的微信授权登录功能时,需要将获取到的微信用户信息先存入 cookie,转入另一个页面后还需再次使用。实际上,cookie 是不能存数组的,因此首先想到的是把数组转成 JSON 字串,再存入 cookie ,但后来发现使用起来并不方便,存入 cookie 后再取出来时,中文变成了unicode 编码,链接被加上了反斜杠,后来才想到用序列化函数 serialize() ,中文和链接都可以维持原样。示例如下:
//存入cookie $wxinfo['openid'] = 'ot03vvmOUAPDhsjABHr8lMsAWH6U'; $wxinfo['nickname'] = 'Ken'; $wxinfo = serialize($wxinfo); setcookie('wxinfo',$wxinfo); //取出数据 $wxinfo = str_replace('\"', '"', $_COOKIE['wxinfo']); $wxinfo = unserialize($wxinfo);
是的,serialize很好用,很多时候还能直接用来做验证,正则都可以省了。