浅谈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一些服务器端特性的配置加强php的安全
Oct 09 PHP
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
PHP新手上路(十一)
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php动态绑定变量的用法
Jun 16 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
php实现购物车功能(下)
Jan 05 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 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
在线增减.htpasswd内的用户
2006/10/09 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
JavaScript调试技巧之console.log()详解
2014/03/19 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
js操作模态窗口及父子窗口间相互传值示例
2014/06/09 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
node.js中的fs.existsSync方法使用说明
2014/12/17 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
详解javascript跨浏览器事件处理程序
2016/03/27 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
全网最全python库selenium自动化使用详细教程
2021/01/12 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
linux面试题参考答案(2)
2015/12/06 面试题
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
骨干教师培训方案
2014/05/06 职场文书
欢迎领导检查标语
2014/06/27 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python