PHP 设置Cookie值注意项
Cookie 中的value值只能添加设置为String类型的字符串数据,但我们需要添加如数组,json串等其他类型的数据时,我们就要先对数据进行转换,再存入Cookie里了。
Cookie 存储数组,cookie存储数组类型的数据有多种方法,实质就是讲数组转换成字符串再存储。
第一种,将数组各个值用逗号拼接成字符串,随后将字符串存入cookie。读取时可以使用split()将字符串以逗号分割重新组成数组。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = $data['a'].",".$data['b'].",".$data['c']; //拼接成字符串
set_cookie('name',$str,3600);
$cstr = $_COOKIE['name'];
$cdata = split('[/,]',$cstr);
第二种,和上一种方法类似,使用 implode() 讲数组合并成一个字符串存入cookie,之后获取cookie值再使用 explode() 将字符串分割后生成数组。注意,使用explode时要保证字符串的首位不能是空(空格),不然会出现warning错误。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = implode(',',$data); set_cookie('name',$str,3600);
$cstr = $_COOKIE['name'];
$cdata = explode(',',$cstr);
第三种,对数组进行编码,之后获取时再进行解码。比如 serialize() 序列化和 unserialize() 反序列化操作。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = serialize($data); set_cookie('name',$str,time()+3600);
$cstr = $_COOKIE['name'];
$cdata = unserialize($cstr);
第四种,Cookie 存储 json 字符串,使用 json_encode() 将数组转换成json字符串,再将json字符串存储到cookie中,最后获取时使用 json_decode() 转换回来即可。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
set_cookie('name',json_encode($data),time()+3600); $cstr = $_COOKIE['name'];
$cdata = json_decode($cstr);
PHP 设置Cookie值注意项的更多相关文章
- java 设置Cookie值
原文地址:http://blog.csdn.net/lansetiankong12/article/details/52622654 /** * 读取所有cookie * 注意二.从客户端读取Cook ...
- phalcon 设置cookie一直是httponly导致前端读取不到cookie的值
解决办法: 修改配置如果不好使,则暂时降低phalcon版本为3.1.2. 注意设置cookie的参数secure的值为false,否则js还是读取不到cookie
- JavaScript中设置cookie的值
cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方.JavaScript ...
- 如何设置Cookie 的值为中文的内容
默认情况下,cookie的值是不允许中文内容的.可以借助于java.net.URLEncoder先对中文字符串进行编码,将编码后的结果设为cookie值.当程序要读取cookie值时,先读取,然后使用 ...
- 登陆后设置cookie的方法
public void SetCookie(string userName, string role,string cookieValueName) {FormsAuthentication.Form ...
- 运用JS设置cookie、读取cookie、删除cookie
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的.而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种 ...
- ComboBoxEdit设置选项值(单选 多选)
网上搜索的 例子 加 自己的 一点点补充 lookupedit 设置选项值: private void LookUpEditFormTest_Load(object sender, EventArgs ...
- JS设置cookie
cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScrip ...
- 解决:jquery ajax非首次请求Server端获取cookie值中文乱码问题
HttpCookie cookie = new HttpCookie("RealName", HttpUtility.UrlEncode("你想要设置的值")) ...
随机推荐
- Kerberos身份验证访问Web HttpFS
原文出处: https://www.ibm.com/support/knowledgecenter/en/SSPT3X_3.0.0/com.ibm.swg.im.infosphere.biginsig ...
- html/css中map和area的应用
一.使用方法: 因为map标签是与img标签绑定使用的,所以我们需要给map标签添加ID和name属性,让img标签中的usemap属性引用map标签中的id或者name属性(由于浏览器的不同,use ...
- struts.xml中package标签的子标签及顺序
记录一下:
- pgsql sql字段拼接
1. 一条记录数据字段拼接 语法:concat_ws('拼接符号',字段名,more fields) 例子:concat_ws(':',username,sex)2. 多条记录字段拼接 语法:con ...
- 11、find查找
1.find查找概述 为什么要有文件查找,因为很多时候我们可能会忘了某个文件所在的位置,此时就需要通过find来查找. find命令可以根据不同的条件来进行查找文件,例如:文件名称.文件大小.文件修改 ...
- 升级python导致yum报错的解决方法
把python从2.7升级到3.6后 , 使用yum报错 File ‘’/usr/bin/yum'', line 30 except KeyboardInterrupt, e: ^ 故障原因:yum采 ...
- Linux中FTP服务器配置
1.FTP服务器的一些基本概念 (1)FTP连接方式 控制连接:标准端口为21,用于发送FTP命令信息. 数据连接:标准端口为20,用于上传.下载数据. ...
- Python名称空间与作用域
什么是名称空间? 比如下图的长方形代表内存,在这个内存里我要设置一个变量100,那么这个变量得有个门牌号,就叫他a吧,但其实变量不是这么存储的,他其实的存储方式是这样的,他会有一个名称空间,这个名称空 ...
- RE 逆向工程初学者指南:方法和工具
简评: RE 两种分析,静态.动态.好好分析静态因为能够解决 70 % 的问题.介绍了一些工具和方法.Enjoy yourself. 最近几天,我决定试水逆向工程,即使在计算机和编程相关领域有一定的基 ...
- java字符串函数用法汇总
替换字符串中的字符 例如有如下x的字符串 String x = "[kllkklk\kk\kllkk]"; 要将里面的"kk"替换为++,可以使用两种方法得到相 ...