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 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
BBS(php & mysql)完整版(二)
Oct 09 PHP
PHP 配置文件中open_basedir选项作用
Jul 19 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
php中{}大括号是什么意思
Dec 01 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
php实现base64图片上传方式实例代码
Feb 22 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
PHP+Ajax简单get验证操作示例
Mar 02 PHP
Yii框架学习笔记之session与cookie简单操作示例
Apr 30 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的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python回调函数的使用方法
2014/01/23 Python
python实现通过代理服务器访问远程url的方法
2015/04/29 Python
flask框架实现连接sqlite3数据库的方法分析
2018/07/16 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
Python在cmd上打印彩色文字实现过程详解
2019/08/07 Python
Python3 元组tuple入门基础
2020/02/09 Python
浅谈Python线程的同步互斥与死锁
2020/03/22 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
python在linux环境下安装skimage的示例代码
2020/10/14 Python
电子商务专业学生的学习自我评价
2013/10/27 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
医学专业自荐信
2014/06/14 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
房屋出租委托书格式
2014/09/23 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
Java实现聊天机器人完善版
2021/07/04 Java/Android
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫