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 Xdebug 调试扩展的安装与使用.
Mar 13 PHP
提高PHP编程效率的53个要点(经验小结)
Sep 04 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
PHP计数器的实现代码
Jun 08 PHP
你应该知道PHP浮点数知识
May 13 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
php微信高级接口群发 多客服
Jun 23 PHP
PHP数据库操作二:memcache用法分析
Aug 16 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
php微信公众号开发之秒杀
Oct 20 PHP
Laravel框架集合用法实例浅析
May 14 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
PHP生成制作验证码的简单实例
2016/06/12 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
NodeJS制作爬虫全过程
2014/12/22 NodeJs
JavaScript中return用法示例
2016/11/29 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
2018/09/30 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
Python新手入门最容易犯的错误总结
2017/04/24 Python
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
Python实现的购物车功能示例
2018/02/11 Python
python 爬取小说并下载的示例
2020/12/07 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
delegate与普通函数的区别
2014/01/22 面试题
中专毕业生的自我鉴定
2013/12/01 职场文书
网络研修随笔感言
2014/02/17 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
党风廉政建设个人总结
2015/03/06 职场文书
张丽莉观后感
2015/06/16 职场文书
监护人证明
2015/06/19 职场文书
汽车销售员工作总结
2015/08/12 职场文书
vue自定义右键菜单之全局实现
2022/04/09 Vue.js