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 相关文章推荐
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
php加密解密实用类分享
Jan 07 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
Jan 04 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
搭建自己的PHP MVC框架详解
Aug 16 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
Nov 17 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP rsa加密解密算法原理解析
Dec 09 PHP
PHP解决高并发问题
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 中文处理函数集合
2008/08/27 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
jQuery新的事件绑定机制on()示例应用
2014/07/18 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
详解javascript appendChild()的完整功能
2018/08/18 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python代码的打包与发布详解
2014/07/30 Python
pygame实现弹力球及其变速效果
2017/07/03 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
2017/11/08 Python
django上传图片并生成缩略图方法示例
2017/12/11 Python
Linux下多个Python版本安装教程
2018/08/15 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
计算机学生求职信范文
2014/01/30 职场文书
交通处罚决定书
2015/06/24 职场文书