浅谈php函数serialize()与unserialize()的使用方法


Posted in PHP onAugust 19, 2014

php函数serialize():

这个函数作用就是序列化数据,返回一个可存储的字符串,该函数有利于存储或传递PHP的值,同时不丢失其类型和结构。所以我们在cms数据库里面经常看到这样的结构。

一般,我们将复杂或者数据量多而没有必要分开存储的数据封装成一个多维数组通过serialize()转成字符串,然后存进数据库,需要的时候再拿出来转成数组再用,而拿出了转成数组用的就是php的unserialize(),前面多了一个un嘛。直接上例子:
 

$a=array("周","满","和","个人","博客","3water.com","周满和","个人博客");
$b=serialize($a);
print_r($b);
echo "<br/>";
$c=unserialize($b);
print_r($c);

输出结果是:

//经过serialize序列化之后得到的数据,也是存这个进数据库
a:8:{i:0;s:3:"周";i:1;s:3:"满";i:2;s:3:"和";i:3;s:6:"个人";i:4;s:6:"博客";i:5;s:20:"3water.com";i:6;s:9:"周满和";i:7;s:12:"个人博客";}
 
//经过unserialize()反序列化得到的数据,和之前的$a数组结构一样吧
Array ( [0] => 周 [1] => 满 [2] => 和 [3] => 个人 [4] => 博客 [5] => 3water.com [6] => 周满和 [7] => 个人博客 )

在上一个复杂一点的二维数组的例子:
 

$a1=array(
  'name'=>array("周","满",'和'),
  'name_weburl'=>array("周满和","3water.com"),
  'all'=>array('周满和个人博客'=>'3water.com')
);
$b1=serialize($a1);
print_r($b1);
echo "<br/>";
$c1=unserialize($b1); 
print_r($c1);

输出结果是:

//经过serialize序列化之后得到的数据,也是存这个进数据库
a:3:{s:4:"name";a:3:{i:0;s:3:"周";i:1;s:3:"满";i:2;s:3:"和";}s:11:"name_weburl";a:2:{i:0;s:9:"周满和";i:1;s:20:"3water.com";}s:3:"all";a:1:{s:21:"周满和个人博客";s:20:"3water.com";}}
 
//经过unserialize()反序列化得到的数据,和之前的$a数组结构一样吧
Array ( [name] => Array ( [0] => 周 [1] => 满 [2] => 和 ) [name_weburl] => Array ( [0] => 周满和 [1] => 3water.com ) [all] => Array ( [周满和个人博客] => 3water.com ) )
PHP 相关文章推荐
PHP与MySQL交互使用详解
Oct 09 PHP
PHP 中的批处理的实现
Jun 14 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
Nov 18 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
Yii实现自动加载类地图的方法
Apr 01 PHP
php is_writable判断文件是否可写实例代码
Oct 13 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
微信公众号实现会员卡领取功能
Jun 08 PHP
thinkPHP5框架中widget的功能与用法详解
Jun 11 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 #PHP
php实现文件下载代码分享
Aug 19 #PHP
PHP中array_map与array_column之间的关系分析
Aug 19 #PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 #PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 #PHP
PHP中单引号与双引号的区别分析
Aug 19 #PHP
php版本的cron定时任务执行器使用实例
Aug 19 #PHP
You might like
PHP初学入门
2006/11/19 PHP
php实现aes加密类分享
2014/02/16 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
PHP实现百度人脸识别
2019/05/06 PHP
Js 订制自己的AlertBox(信息提示框)
2009/01/09 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
js与jquery分别实现tab标签页功能的方法
2016/11/18 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
js实现图片跟随鼠标移动效果
2019/10/16 Javascript
Vue watch响应数据实现方法解析
2020/07/10 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
django+echart数据动态显示的例子
2019/08/12 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
基于python3实现倒叙字符串
2020/02/18 Python
python文件编写好后如何实践
2020/07/07 Python
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
员工自我鉴定范文
2013/10/06 职场文书
特色蛋糕店创业计划书
2014/01/28 职场文书
简历上的自我评价
2014/02/03 职场文书
师范生自我鉴定
2014/03/20 职场文书
关于建议书的格式范文
2014/05/20 职场文书
我为党旗添光彩演讲稿
2014/09/13 职场文书
代理人委托书
2014/09/16 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
Java面试题冲刺第十七天--基础篇3
2021/08/07 面试题