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("你想要设置的值")) ...
随机推荐
- 封装H5ToApp方法
方法一: 新建个 Android studio 项目,用 webview 指定访问你的页面 方法二: 使用工具 cordova 附上地址:http://cordova.axuer.com/docs/ ...
- Django 使用request获取浏览器发送的参数(Django编程-5)
1.url:需要正则去匹配 url(r'^index/(num)/$',view.index) 匹配到的参数会自动传入对应的视图函数 也可以给匹配到的参数起名字?P url(r'^index/(?P& ...
- 【Java】 Java网络编程总结
一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...
- charles 安装使用教程及弱网设置
1.安装jdk环境 2.下载charles 3.打开直接使用 4.手机端安装相关证书 5.手机端网络设置代理 6.分析查看数据 点击sequane中的值查看app中的数据返回与请求值. charl ...
- Linux课程学习 第三课
生活中的许多事,并不是我们不能做到,而是我们不相信能够做到 https://www.linuxcool.com/ 一个很实用的Linux命令查询网站,并且还有发音 如果我们在系统终端中执行一个命令后想 ...
- asyncio动态添加任务
asyncio.run_forever()下动态添加任务 方法一.asyncio.run_coroutine_threadsafe(coroutine, loop) 方法二.asyncio.call_ ...
- jQuery获取当前按钮的id
function test(e) { $(e.target).attr('id') } // 记得带上点击事件
- php socket如何实现长连接
长连接是什么? 朋友们应该都见过很多在线聊天工具和网页在线聊天的工具.学校内有一种熟悉的功能,如果有人回复你了,网站会马上出现提示,此时你并没有刷新页面:Gmail也有此功能,如果邮箱里收到了新的邮件 ...
- Tableau预测
Tableau可以通过对现有的数据进行预测.
- 基于Redis实现分布式锁(转载)
原文地址:http://blog.csdn.net/ugg/article/details/41894947 Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍 SETNX命令(SE ...