serialize和unserialize函数
序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
1. serialize和unserialize函数
这两个是序列化和反序列化PHP中数据的常用函数。
<?php $a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); //序列化数组 $s = serialize($a); echo $s; //输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";} echo '<br /><br />'; //反序列化 $o = unserialize($s); print_r($o); //输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut ) ?>
当数组值包含如双引号、单引号或冒号等字符时,它们被反序列化后,可能会出现问题。为了克服这个问题,一个巧妙的技巧是使用base64_encode和base64_decode。
$obj = array(); //序列化 $s = base64_encode(serialize($obj)); //反序列化 $original = unserialize(base64_decode($s));
但是base64编码将增加字符串的长度。为了克服这个问题,可以和gzcompress一起使用。
//定义一个用来序列化对象的函数 function my_serialize( $obj ) { return base64_encode(gzcompress(serialize($obj))); } //反序列化 function my_unserialize($txt) { return unserialize(gzuncompress(base64_decode($txt))); }
转载于:https://www.cnblogs.com/dragonli/p/5527414.html
serialize和unserialize函数相关推荐
- PHP多种序列化/反序列化的方法(serialize和unserialize函数)
serialize和unserialize函数这两个是序列化和反序列化PHP中数据的常用函数.<?php$a = array('a' => 'Apple' ,'b' => 'bana ...
- php json_decode 效率,浅析PHP中json_encode、json_decode与serialize、unserialize的性能测试...
今天偶然在想,如果用PHP写一个类似BDB的基于文件的Key-Value小型数据库用于存储非结构化的记录型数据,不知道效率会如何? 于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之 ...
- php函数serialize()与unserialize()
php函数serialize()与unserialize()说明及案例.想要将已序列化的字符串变回 PHP 的值,可使用unserialize().serialize()可处理除了resource之外 ...
- 非常好用的两个PHP函数 serialize()和unserialize()
使用serialize()函数和unserialize()函数,这两个函数的用法真是绝配,一个是进行序列化存储,另一个则是进行序列化恢复,方便极了 今天,在做一个关于PING服务的东西,由于不想把pi ...
- php序列化(serialize)和反序列化(unserialize)函数
用法:serialize().unserialize() 适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方.这有利于存储或传递 PHP 的值,同时不 ...
- golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法详解...
Golang 实现 PHP里的 serialize() . unserialize() 安装 go get -u github.com/techleeone/gophp/serialize 用法 pa ...
- serialize()与unserialize()
serialize()与unserialize() 简单说serialize($param)就是把$param的值序列化,貌似以前看过UCHOME数据库里某些字段就是存储的这样的数据(a:1:{s:7 ...
- golang 解析php序列化,golang实现php里的serialize()和unserialize()序列和反序列方法
本文实例讲述了PHP查询附近的人及其距离的实现方法.分享给大家供大家参考,具体如下: ?php//获取该点周围的4个点$distance = 1;//范围(单位千米)$lat = 113.873643 ...
- 树莓派i2c python_树莓派2 python i2cPython中chr、unichr、ord字符函数之间的对比
chr.unichr.ord在Python中都可以被用作字符类型转换,这里我们就来浅谈Python中chr.unichr.ord字符函数之间的对比,需要的朋友可以参考下ord是unicode ordi ...
最新文章
- Perforce使用之创建DEPOT流程
- [洛谷P4726]【模板】多项式指数函数
- linux查看硬盘smart_SMART Utility for mac (硬盘检测)
- Java操作memcache
- robot连PCwifi、PC开Shell连robot
- 关于JEECG 开源声明
- vue05-REST 请求
- 找规律 SGU 107 987654321 problem
- obs之libx264编码
- 深度学习入门代码详解(附代码)
- 学校实训 电力巡检系统管理平台
- 威联通+nas+mysql_让不同品牌的 NAS 没有距离,群晖和威联通之间如何同步
- php+检测是否是手机浏览器,php检测是否是移动设备的浏览器
- Vmware安装详细教程
- 思科模拟器vlan的划分
- 使用 webservice 实现 RPC 调用
- 移动互联网寒冬到来,程序员该怎么办?
- 《机器学习》学习笔记
- Android ViewPager 自定义翻页动画
- 最全的硬盘问题及修复方法
热门文章
- 现在论文用手写还是用计算机写,毕业论文计算机手写数字识别技术完整版.docx...
- php构造方法什么时候使用,php:构造方法的说明详解
- java中什么是匿名接口_Java中接口(interface)和匿名类
- ASPNetCore MVC ModelValidation-ajax
- HDU-1501-Zipper
- 李开复谈创业失败十原因:经不住诱惑 直接山寨
- 看Facebook如何基于物理安全保护数据
- 采用Visual Stuidio 2010 创建网站栏
- 怎么在InfoPath Web浏览器表单中弹出对话框?
- Linux运维 第三阶段 (一) 网络配置及openssl加密