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中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
php下图片文字混合水印与缩略图实现代码
Dec 11 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
Opcache导致php-fpm崩溃nginx返回502
Mar 02 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
php格式化时间戳
Dec 17 PHP
简单谈谈PHP中的trait
Feb 25 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
php实现留言板功能(会话控制)
May 23 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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初学者的8点有效建议
2010/11/20 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
javascript事件问题
2009/09/05 Javascript
div移动 输入框不能输入的问题
2009/11/19 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
JS中表单的使用小结
2014/01/11 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
Vue-cli创建项目从单页面到多页面的方法
2017/09/20 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python中的super用法详解
2015/05/28 Python
Python模拟百度登录实例详解
2016/01/20 Python
python生成excel的实例代码
2017/11/08 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
党的群众路线对照检查材料
2014/08/27 职场文书
推普周活动总结
2014/08/28 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL