PHP常见的序列化与反序列化操作实例分析


Posted in PHP onOctober 28, 2019

本文实例讲述了PHP常见的序列化与反序列化操作。分享给大家供大家参考,具体如下:

1.概念

serialize() 把变量和它们的值编码成文本形式

unserialize() 恢复原先变量 

2.序列化例子

输入输出

$arr=array();
$arr['name']='张三';
$arr['age']='22';
$arr['sex']='男';
$arr['phone']='123456789';
$arr['address']='上海市浦东新区';
var_dump($arr);

array(5) {
["name"]=> string(6) "张三"
["age"]=> string(2) "22"
["sex"]=> string(3) "男"
["phone"]=> string(9) "123456789"
["address"]=> string(21) "上海市浦东新区"
}

序列化操作

$info=serialize($arr);
var_dump($info);

输出结果

string(140) "a:5:{s:4:"name";s:6:"张三";s:3:"age";s:2:"22";s:3:"sex";s:3:"男";s:5:"phone";s:9:"123456789";s:7:"address";s:21:"上海市浦东新区";}"

解析

使用序列化serialize($arr)函数,将数组中元素的键和值按照规则顺序连接成字符串。

a:5标志序列化为array包含5个键值对,

s:4标志内容为字符串包含4个字符。

3.反序列化列子

$zhangsan=unserialize($info);
var_dump($zhangsan);

输出

array(5) {
["name"]=> string(6) "张三"
["age"]=> string(2) "22"
["sex"]=> string(3) "男"
["phone"]=> string(9) "123456789"
["address"]=> string(21) "北京市海淀区"
}

4.优缺点

通过序列化我们可以将一些模块化的数据使用字符串的形式存储在数据库或session等,可以减少创建众多繁琐的数据表字段,当然序列化为字符串存储会增加额外的空间,应合理的设计和应用。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
十天学会php之第十天
Oct 09 PHP
?生?D片??C字串
Dec 06 PHP
PHP has encountered an Access Violation
Jan 15 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php中{}大括号是什么意思
Dec 01 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
php数组操作之键名比较与差集、交集赋值的方法
Nov 10 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
Nov 14 PHP
php中文验证码实现方法
Jun 18 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
php中青蛙跳台阶的问题解决方法
Oct 14 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 PHP
PHP接入微信H5支付的方法示例
Oct 28 #PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 #PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 #PHP
layui数据表格自定义每页条数limit设置
Oct 26 #PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 #PHP
Laravel 实现添加多语言提示信息
Oct 25 #PHP
Laravel5.5 动态切换多语言的操作方式
Oct 25 #PHP
You might like
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
PHP数据库调用类调用实例(详细注释)
2012/07/12 PHP
PHP的5个安全措施小结
2012/07/17 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
php实现URL加密解密的方法
2016/11/17 PHP
列表内容的选择
2006/06/30 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
浅谈针对Vue相同路由不同参数的刷新问题
2018/09/29 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
React组件对子组件children进行加强的方法
2019/06/23 Javascript
JS使用H5实现图片预览功能
2019/09/30 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
python通过线程实现定时器timer的方法
2015/03/16 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
实例讲解python中的序列化知识点
2018/10/08 Python
从0开始的Python学习014面向对象编程(推荐)
2019/04/02 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
Python Collatz序列实现过程解析
2019/10/12 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
服务员自我评价
2014/01/25 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
创意广告词
2014/03/17 职场文书
投资合作协议书范本
2014/04/17 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
婚前协议书标准版
2014/10/19 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
限期整改通知书
2015/04/22 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers