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遍历二维数组的代码
Apr 22 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
基于Zend的Config机制的应用分析
May 02 PHP
PHPer 需要了解的 5 个 Composer 小技巧
Aug 18 PHP
php获取twitter最新消息的方法
Apr 14 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
laravel框架关于搜索功能的实现
Mar 15 PHP
微信支付之JSAPI公众号支付详解
May 15 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
PHP_MySQL教程-第一天
2007/03/18 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
PHP内核探索:变量概述
2014/01/30 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
JavaScript中for..in循环陷阱介绍
2013/11/12 Javascript
javascript操作css属性
2013/12/30 Javascript
ExtJS如何设置与获取radio控件的选取状态
2014/01/22 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
详解JS面向对象编程
2016/01/24 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
python获取远程图片大小和尺寸的方法
2015/03/26 Python
改进Django中的表单的简单方法
2015/07/17 Python
Python实现ping指定IP的示例
2018/06/04 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
python文件写入write()的操作
2019/05/14 Python
Python三元运算与lambda表达式实例解析
2019/11/30 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
介绍一下Linux中的链接
2016/06/05 面试题
服务标语大全
2014/06/18 职场文书
社区植树节活动总结
2015/02/06 职场文书
辞职书格式样本
2015/02/26 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
思品教学工作总结
2015/08/10 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
javascript对象3个属性特征
2021/11/17 Javascript
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS