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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php学习之变量的使用
May 29 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
分享PHP header函数使用教程
Sep 05 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
Sep 30 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
如何使用php实现评委评分器
Jul 31 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
laravel admin实现分类树/模型树的示例代码
Jun 10 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
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
javascript之学会吝啬 精简代码
2010/04/25 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
js改变style样式和css样式的简单实例
2016/06/28 Javascript
jQuery实现的选择商品飞入文本框动画效果完整实例
2016/08/10 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
JavaScript 拖拽实例代码
2016/09/21 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
jQuery EasyUI 获取tabs的实例解析
2016/12/06 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
python开发之str.format()用法实例分析
2016/02/22 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
python 读取鼠标点击坐标的实例
2018/12/29 Python
python画微信表情符的实例代码
2019/10/09 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
房地产财务管理制度
2014/02/02 职场文书
《老王》教学反思
2014/02/23 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
拾金不昧感谢信范文
2015/01/21 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
董事会决议范本
2015/07/01 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书
Python实现拼音转换
2021/06/07 Python
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL