浅谈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 设计模式之 单例模式
Dec 19 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
关于PHP中Object对象的笔记分享
Jun 28 PHP
PHP在线生成二维码(google api)的实现代码详解
Jun 04 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
使用PHP强制下载PDF文件示例
Jan 17 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
Jul 08 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 PHP
php封装的表单验证类完整实例
Oct 19 PHP
PHP程序员必须知道的两种日志实例分析
May 14 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/10/09 PHP
php 结果集的分页实现代码
2009/03/10 PHP
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
js获取鼠标位置实例详解
2015/12/09 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Python+Pandas 获取数据库并加入DataFrame的实例
2018/07/25 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
2019/01/17 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
计算机应用与科学个人的自我评价
2013/11/15 职场文书
公司投资建议书
2014/05/16 职场文书
优秀教师推荐材料
2014/12/16 职场文书
工作迟到检讨书范文
2015/05/06 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL