在thinkphp3中如何处理cookie数组
发布:smiling 来源: PHP粉丝网 添加日期:2014-04-12 16:56:00 浏览: 评论:0
最近玩thinkphp框架时,遇到cookie真让人头晕,网上百度了一下,找到的大概都是thinkphp2.0的资料,说在Think\Lib\Think\Util\Cookie.class.php中,但实际上thinkphp3.0已经将cookie移到ThinkPHP\Common\functions.php中,用test.php测试了一下cookie函数,发现cookie自动会将数组用json_encode连接再存储,就像手册上说的支持数组存储,但实际上已经变成josn字符串了,还有原来的中文都变成了"\UXXXX"之类的字符,很时奇怪,后来查看cookie函数的原代码,发现字符都被转换成json_encode重新编码了,与是解码就找到办法了,但接下来又遇到问题了,用json_decode($_COOKIE["userinfo"])在当前页能得到原数组,但换一个页面后结果居然为“NULL”,用$str=cookie("userinfo")进行读取赋值,却得到了:
- object(stdClass)#4 (3) {
- ["name"] => string(6) "张三"
- ["code"] => int(123)
- ["password"] => string(8) "22334455"
- }
$str得到的是一个类,作为类来处理的.
可我希望得到了是一个数组,于是dump($_COOKIE["userinfo"]),其结果居然"{\"name\":\"\\u5f20\\u4e09\",\"code\":123,\"password\":\"22334455\"}" ,也就是都被加了转义字符,数字部分除外,终于找到原因了,解决起来就容易了,用stripslashes($_COOKIE["userinfo"]);//去除转义字符后,再进行一次反向的编码操作json_decode($str,true)就完成了,最后dump()打印结果,得到了正确的数组结果.
- array(3) {
- ["name"] => string(6) "张三"
- ["code"] => int(123)
- ["password"] => string(8) "22334455"
- }
实例代码如下:
- <?php
- require_once "ThinkPHP/Common/functions.php";
- $user=array(
- "name" =>"张三",
- "code" =>123,
- "password" =>"22334455");
- cookie(userinfo,$user,time()+3600);
- var_dump($_COOKIE["userinfo"]);
- //重新读取成数组
- $str=stripslashes($_COOKIE["userinfo"]);//去除转义字符
- $userinfo=json_decode($str,true);
- var_dump($userinfo);
- ?>
Tags: thinkphp3 处理 cookie数组
- 上一篇:thinkPHP--多数据库交互通信
- 下一篇:thinkphp模板标签:if和eq
相关文章
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·ThinkPHP3.13新版使用体验(2014-04-12)
- ·ThinkPHP3.1新特性 多数据库操作的完善(2014-04-12)
- ·揭秘ThinkPHP3.1.2版本的独立分组功能(2014-04-12)
- ·thinkphp3.12安装出现这个问题的解决方法(2014-04-12)
- ·给thinkphp3.1案例blog添加一个删除的标签的方法(2014-04-12)
- ·ThinkPHP3.1.2整合UCenter详解(2014-04-12)
- ·ThinkPHP3.0中的一个快捷查询方法(|和&)(2014-04-12)
- ·ThinkPHP3.1教程新特性:动态设置自动完成和自动验证(2014-04-12)
- ·ThinkPHP3.0中PHPMailer的使用(2014-04-12)
- ·THINKPHP3 静态缓存要素(2014-04-19)
- ·THINKPHP3 ajax无刷新分页类及实例(2014-04-19)
- ·关于THINKPHP3.0批量删除的设计思路和部分关键代码(2014-04-19)
- ·ThinkPHP3.0国际化配置方法(2014-04-19)
- ·thinkphp3.0 输出重复2次的解决方法(2014-04-19)
- ·ThinkPHP 3.1.2 CURD特性(2014-11-20)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)