浅谈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 Ajax实现页面无刷新发表评论
Jan 02 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
Linux下PHP连接Oracle数据库
Aug 20 PHP
PHP中的替代语法简介
Aug 22 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
php简单smarty入门程序实例
Jun 11 PHP
Laravel5权限管理方法详解
Jul 26 PHP
php 基础函数
Feb 10 PHP
iis 7下安装laravel 5.4环境的方法教程
Jun 14 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
解决laravel资源加载路径设置的问题
Oct 14 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
浅谈php提交form表单
2015/07/01 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
vue实现移动端拖动排序
2020/08/21 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
pandas按若干个列的组合条件筛选数据的方法
2018/04/11 Python
pandas读取csv文件,分隔符参数sep的实例
2018/12/12 Python
Python空间数据处理之GDAL读写遥感图像
2019/08/01 Python
python函数参数(必须参数、可变参数、关键字参数)
2019/08/16 Python
python内置模块collections知识点总结
2019/12/19 Python
python开发一款翻译工具
2020/10/10 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
会话Bean的种类
2013/11/07 面试题
.net面试题
2016/09/17 面试题
房地产融资计划书
2014/01/10 职场文书
会计岗位职责范本
2014/03/07 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
社区党建工作方案
2014/06/10 职场文书
早读课迟到检讨书
2014/09/25 职场文书
领导班子对照检查剖析材料
2014/10/13 职场文书
感恩老师主题班会
2015/08/12 职场文书
2016暑期社会实践新闻稿
2015/11/25 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL