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 相关文章推荐
仿AS3实现PHP 事件机制实现代码
Jan 27 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
使用PHP接收POST数据,解析json数据
Jun 28 PHP
多个PHP中文字符串截取函数
Nov 12 PHP
PHP return语句另类用法不止是在函数中
Sep 17 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
PHP cURL初始化和执行方法入门级代码
May 28 PHP
微信公众平台开发之配置与请求
Aug 26 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP获取星期几的常用方法小结
Dec 18 PHP
Yii 框架使用Forms操作详解
May 18 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 数组的一个悲剧?
2011/05/11 PHP
解析php入库和出库
2013/06/25 PHP
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
自编jQuery插件实现模拟alert和confirm
2014/09/01 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
2016/03/05 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python优先队列实现方法示例
2017/09/21 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
django 多数据库配置教程
2018/05/30 Python
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python+OpenCV图像处理——实现轮廓发现
2020/10/23 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
挂职思想汇报
2013/12/31 职场文书
模范家庭事迹材料
2014/02/10 职场文书
团日活动总结模板
2014/06/25 职场文书
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
公司借款担保书
2015/09/22 职场文书
python实现的web监控系统
2021/04/27 Python
MYSQL 表的全面总结
2021/11/11 MySQL