浅谈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 相关文章推荐
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
Oct 09 PHP
PHP 定界符 使用技巧
Jun 14 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
yii操作cookie实例简介
Jul 09 PHP
php+mysql查询实现无限下级分类树输出示例
Oct 03 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP操作Redis数据库常用方法示例
Aug 25 PHP
Yii2处理密码加密及验证的方法
May 12 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
Jun 05 PHP
PHP项目多语言配置平台实现过程解析
May 18 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表单转换textarea换行符的方法
2010/09/10 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
php使用socket调用http和smtp协议实例小结
2019/07/26 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
Laravel 前端资源配置教程
2019/10/18 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
js下利用控制器载入对应脚本
2010/07/17 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
2018/07/06 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
微信小程序BindTap快速连续点击目标页面跳转多次问题处理
2019/04/08 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现的防DDoS脚本
2011/02/08 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
Python判断是否json是否包含一个key的方法
2018/12/31 Python
Python短信轰炸的代码
2020/03/25 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
如何通过命令行进入python
2020/07/06 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Python代码覆盖率统计工具coverage.py用法详解
2020/11/25 Python
总经理助理的八要求
2013/11/12 职场文书
法律专业求职信
2014/05/24 职场文书
法学求职信
2014/06/22 职场文书
新闻稿格式范文
2015/07/18 职场文书
MySQL创建管理RANGE分区
2022/04/13 MySQL