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 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
PHP mcrypt可逆加密算法分析
Jul 19 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
Jan 31 PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
linux下php上传文件注意事项
Jun 11 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
PHP实现判断数组是一维、二维或几维的方法
Feb 06 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 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 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php实现图片压缩处理
2020/09/09 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
jquery Easyui Datagrid实现批量操作(编辑,删除,添加)
2017/02/20 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
2019/04/22 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
2019/06/04 jQuery
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
介绍Python中几个常用的类方法
2015/04/08 Python
Python实现二维有序数组查找的方法
2016/04/27 Python
Python实现对文件进行单词划分并去重排序操作示例
2018/07/10 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
linux面试题参考答案(6)
2014/08/29 面试题
工商管理毕业生推荐信
2013/12/24 职场文书
记者岗位职责
2014/01/06 职场文书
铁路个人事迹材料
2014/01/30 职场文书
物流业务员岗位职责
2014/02/08 职场文书
小学三年级学生评语
2014/04/22 职场文书
鲁迅故里导游词
2015/02/05 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
vue基于Teleport实现Modal组件
2021/05/31 Vue.js
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
springboot中的pom文件 project报错问题
2022/01/18 Java/Android