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 相关文章推荐
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 PHP
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
Jan 15 PHP
php include,include_once,require,require_once
Sep 05 PHP
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
thinkphp控制器调度使用示例
Feb 24 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP正则验证Email的方法
Jun 15 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
Yii CGridView用法实例详解
Jul 12 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
php获取ip及网址的简单方法(必看)
Apr 01 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如何透过ODBC来存取数据库
2006/10/09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
YII2框架中excel表格导出的方法详解
2017/07/21 PHP
Laravel框架查询构造器简单示例
2019/05/08 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
获取3个数组不重复的值的具体实现
2013/12/30 Javascript
二叉树先序遍历的非递归算法具体实现
2014/01/09 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
JavaScript前后端JSON使用方法教程
2020/11/23 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
Python功能键的读取方法
2015/05/28 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
使用Python更换外网IP的方法
2018/07/09 Python
python Shapely使用指南详解
2020/02/18 Python
keras得到每层的系数方式
2020/06/15 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
预备党员对照检查材料思想汇报
2014/09/24 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
节约用水广告语60条
2019/11/14 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android