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("你想要设置的值")) ...
随机推荐
- 帝国cms 通过文章的id获取信息
获取栏目id为13下id为46的数据 [e:loop={"select * from phome_ecms_news where classid = 13 and id = 46" ...
- 转载:elasticsearch入门篇
转自:https://www.cnblogs.com/hello-shf/p/11543408.html elasticsearch入门篇 elasticsearch专栏:https://www. ...
- jquery ready load
jq 加载三种写法 $(document).ready(function() { // ...代码... }) //document ready 简写 $(function() { // ...代码. ...
- hadoop安装zookeeper-3.4.12
在安装hbase的时候,需要安装zookeeper,当然也可以用hbase自己管理的zookeeper,在这里我们独立安装zookeeper-3.4.12. 下载地址:https://mirrors. ...
- postgres导入和导出
导出整个数据库: pg_dump -h 127.0.0.1 -U zhang mydb >mydb_dum.sql 导出某个表: pg_dump -h 127.0.0.1 -U zhang my ...
- linux上安装rz和sz
简介 lrzsz 官网入口:http://freecode.com/projects/lrzsz/ lrzsz是一个unix通信套件提供的X,Y,和ZModem文件传输协议 windows 需要向ce ...
- 【转载】#pragma once与#ifndef
本篇随笔为转载,原贴地址:#pragma once与#ifndef解析 为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式.在 ...
- 紫书 例题 10-11 UVa 11181(概率计算)
这道题不能凭感觉做了.要套公式 r个人买了东西叫事件E, 第i个人买东西的概率叫做事件Ei 求得是P(E|Ei), 则P(E|Ei)= P(E|Ei)/ P(E) 那么P(E)可以枚举求得, 用递归求 ...
- C#线程中LOCK的意义
学习心得,为的是让新人能理解,高手直接绕~ lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区.如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放. 引用一句 ...
- 【每日一包0003】kind-of
github地址:https://github.com/ABCDdouyae... kind-of 判断数据类型用法:kind-of(date)返回:string 数据类型 January undef ...