热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在thinkphp3中如何处理cookie数组

最近玩thinkphp框架时,遇到cookie真让人头晕,网上百度了一下,找到的大概都是thinkphp2.0的资料,说在Think\Lib\Think\Util\Cookie.class.php中,但实际上thinkphp3.0已经将cookie移到ThinkPHP\Common\functions.php中.

最近玩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")进行读取赋值,却得到了:

  1. object(stdClass)#4 (3) {  
  2. ["name"] => string(6) "张三"  
  3. ["code"] => int(123)  
  4. ["password"] => string(8) "22334455"  

$str得到的是一个类,作为类来处理的.

可我希望得到了是一个数组,于是dump($_COOKIE["userinfo"]),其结果居然"{\"name\":\"\\u5f20\\u4e09\",\"code\":123,\"password\":\"22334455\"}" ,也就是都被加了转义字符,数字部分除外,终于找到原因了,解决起来就容易了,用stripslashes($_COOKIE["userinfo"]);//去除转义字符后,再进行一次反向的编码操作json_decode($str,true)就完成了,最后dump()打印结果,得到了正确的数组结果.

  1. array(3) { 
  2.  ["name"] => string(6) "张三"  
  3. ["code"] => int(123)  
  4. ["password"] => string(8) "22334455" 
  5.  } 

实例代码如下:

  1. require_once "ThinkPHP/Common/functions.php"
  2. $user=array
  3. "name"  =>"张三"
  4. "code" =>123, 
  5. "password" =>"22334455"); 
  6. COOKIE(userinfo,$user,time()+3600); 
  7. var_dump($_COOKIE["userinfo"]); 
  8. //重新读取成数组 
  9. $str=stripslashes($_COOKIE["userinfo"]);//去除转义字符 
  10. $userinfo=json_decode($str,true); 
  11. var_dump($userinfo); 
  12. ?> 

推荐阅读
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 在Windows系统上安装VMware Workstation 2022的详细步骤
    本文将详细介绍如何在Windows系统上安装VMware Workstation 2022。包括从官方网站下载软件、选择合适的版本以及安装过程中的关键步骤。此外,还将提供一些激活密钥供参考。 ... [详细]
  • 本文探讨了在 PHP 中处理 JSON 编码时中文字符显示为 Unicode 转义序列的问题,并提供了多种有效的解决方法,包括使用正则表达式替换、URL 编码以及利用 PHP 5.4 及以上版本提供的 JSON_UNESCAPED_UNICODE 选项。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • Composer Registry Manager:PHP的源切换管理工具
    本文介绍了一个用于Composer的源切换管理工具——Composer Registry Manager。该项目旨在简化Composer包源的管理和切换,避免与常见的CRM系统混淆,并提供了详细的安装和使用指南。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 爱奇艺视频下载指南
    随着百度在视频领域的不断扩展,爱奇艺的内容库日益丰富,涵盖了大量新番动画、电影、电视剧和综艺节目。本文将详细介绍如何通过爱奇艺客户端下载视频,帮助用户轻松实现离线观看。 ... [详细]
author-avatar
书友34043247
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有