浅谈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中使用Oracle数据库(2)
Oct 09 PHP
一个ubbcode的函数,速度很快.
Oct 09 PHP
用PHP和ACCESS写聊天室(五)
Oct 09 PHP
PHP初学者最感迷茫的问题小结
Mar 27 PHP
PHP常用的缓存技术汇总
May 05 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
Jun 10 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
PHP中__set()实例用法和基础讲解
Jul 23 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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
Blitz templates 最快的PHP模板引擎
2010/04/06 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
2014/07/15 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
php实现在线考试系统【附源码】
2018/09/18 PHP
让iframe框架网页在任何浏览器下自动伸缩
2006/08/18 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
实例详解JavaScript中setTimeout函数的执行顺序
2017/07/12 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
vue中v-model对select的绑定操作
2020/08/31 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
[01:10]为家乡而战!完美世界城市挑战赛全国总决赛花絮
2019/07/25 DOTA
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
Python的面向对象编程方式学习笔记
2016/07/12 Python
python版学生管理系统
2018/01/10 Python
django+mysql的使用示例
2018/11/23 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python web框架中实现原生分页
2019/09/08 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
大学新生军训个人的自我评价
2013/10/03 职场文书
ktv好的活动方案
2014/08/17 职场文书
对照检查剖析材料
2014/09/30 职场文书
学校运动会感想
2015/08/10 职场文书