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获取mysql版本的几种方法小结
Mar 25 PHP
PHP的加密方式及原理
Jun 14 PHP
php中autoload的用法总结
Nov 08 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
利用PHP如何实现Socket服务器
Sep 23 PHP
PHP实现无限级分类(不使用递归)
Oct 22 PHP
PHP会话控制实例分析
Dec 24 PHP
php 根据自增id创建唯一编号类
Apr 06 PHP
针对PHP开发安全问题的相关总结
Mar 22 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
浅谈PHP中的那些魔术常量
Dec 02 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
thinkphp的c方法使用示例
2014/02/24 PHP
thinkphp3.2.2前后台公用类架构问题分析
2014/11/25 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
js DOM模型操作
2009/12/28 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
2013/04/19 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
详谈python http长连接客户端
2017/06/12 Python
Python判断对象是否为文件对象(file object)的三种方法示例
2019/04/26 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
路政管理专业个人自荐信范文
2013/11/30 职场文书
黄河象教学反思
2014/02/10 职场文书
报告会主持词
2014/04/02 职场文书
电子商务专业自荐信
2014/06/02 职场文书
二人合伙经营协议书
2014/09/13 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
建筑安全员岗位职责
2015/02/15 职场文书
办公室日常管理制度
2015/08/04 职场文书
2016春节放假通知范文
2015/08/18 职场文书
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis