大多数情况下,我们需要将复杂的数组存储在数据库中或PHP中的文件中。有些人可能会使用PHP内置函数来完成这项任务。所谓复杂数组是具有多个数据类型或数组的元素的数组。

但是,我们已经有了一个方便的解决方案来处理这种情况。我们不必编写自己的函数来将复杂数组转换为格式化字符串。有两种流行的变量序列化方法。(推荐:PHP教程)

1、serialize()

2、unserialize()

我们可以使用serialize()函数序列化PHP中的任何数据。serialize()函数接受一个参数,该参数是我们想要分类的数据并返回一个序列化的字符串。

程序如下:

//一个复杂的数组

$myvar=array(

'hello',

42,

array(1,'two'),

'apple'

);

// 转换成字符串

$string= serialize($myvar);

// 打印序列化的数据

echo$string;

?>

输出:

a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:

0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";}

从上面的代码中,我们得到了一个具有序列化数据的变量$string。我们可以使用unserialize()函数来反序列化变量的值,以返回复杂数组$myvar的原始值。

serialize()和unserialize()函数示例:

// 一个复杂的数组

$myvar=array(

'hello',

42,

array(1,'two'),

'apple'

);

// 序列化上述数据

$string= serialize($myvar);

// 反序列化$string中的数据

$newvar= unserialize($string);

// 打印未序列化的数据

print_r($newvar);

?>

输出:

Array

(

[0] => hello

[1] => 42

[2] => Array

(

[0] => 1

[1] => two

)

[3] => apple

)

这是本机PHP序列化方法。但是,由于JSON近年来变得如此受欢迎,他们决定在PHP 5.2中添加对它的支持。现在,您可以使用json_encode()和json_decode()函数分别在PHP中序列化和反序列化数据。

由于JSON格式仅为文本格式,因此可以轻松地将其发送到服务器或从服务器发送,并且可以通过任何编程语言用作数据格式。

让我们看看如何在PHP中使用json_encode():

// 一个复杂的数组

$myvar=array(

'hello',

42,

array(1,'two'),

'apple'

);

// 序列化数据

$string= json_encode($myvar);

// 打印序列化的数据

echo$string;

?>

输出:

["hello",42,[1,"two"],"apple"]

我们可以使用json_decode()函数解码上面程序中编码的数据,以获得原始复杂数组。

程序如下:

// 一个复杂的数组

$myvar=array(

'hello',

42,

array(1,'two'),

'apple'

);

// 序列化数据

$string= json_encode($myvar);

// 解码上面编码的字符串

$newvar= json_decode($string);

//phpfensi.com

// 打印解码后的数据

print_r($newvar);

?>

输出:

Array

(

[0] => hello

[1] => 42

[2] => Array

(

[0] => 1

[1] => two

)

[3] => apple

)

php 接收序列化数据,PHP如何序列化数据?相关推荐

  1. 【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

    文章目录 一.标签闭包下创建子标签 二.使用 MarkupBuilderHelper 添加 xml 注释 三.完整代码示例 一.标签闭包下创建子标签 在上一篇博客 [Groovy]xml 序列化 ( ...

  2. 重温WCF之数据契约和序列化(四)

    一.数据契约 1.使用数据协定可以灵活控制哪些成员应该被客户端识别. [DataContract]public class Employee{[DataMember]public string Nam ...

  3. 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称

    文章目录 集合到文件 文件到集合 点名器 集合到文件数据排序版 标准输入流 打印流 对象序列化流 对象返序列化流 Properties 游戏次数 进程和线程 线程 多线程的实现方式 设置和获取线程名称 ...

  4. java中的IO流之序列化与反序列化(对象数据和文件的读写交互)

    前言必读 读者手册(必读)_云边的快乐猫的博客-CSDN博客 一.知识点介绍 1.什么是序列化与反序列化? 对象与磁盘的交互读写. 2.为什么要学? 2.1在之前的IO流中,都是内存与磁盘进行交互的读 ...

  5. 【Unity百宝箱】游戏中的用户数据存档 | Json序列化和反序列化 | 数据加密和解密 | 干货游戏教程

    目录 框架设计 工具选用 逻辑书写 框架使用 框架优化 数据加密 总结 最后 Hi 大家好,我是游戏区Bug打工人小棋. 在游戏开发过程中,我们经常有存储用户数据的这一需求,比方说:游戏音量.关卡进度 ...

  6. Android Wear开发 - 数据通讯 - 第二节 : 数据的发送与接收

    本节由介绍3种数据的发送接收: 1.Data Items : 比特类型数据,限制100KB以内 2.Assets : 资源类型数据,大小无上限 3.Message : 发送消息,触发指令 http:/ ...

  7. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)

    1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...

  8. php怎么接受,如何使php://input接收到另一个php的数据

    程序设置只有接受到APP.POST过来的数据才会继续走,否则直接跳出. 如果想通过php来进行测试,那么要怎么去编译? 通过curl去post,在file_get_contents("php ...

  9. ActionScript接收socket服务器发送来的数据

    原文地址:http://www.asp119.com/news/2009522181815_1.htm 从socket中接收数据的方法取决于你使用socket类型,Socket和XMLSocket都可 ...

最新文章

  1. 【数据结构】链表中的 指针,地址
  2. 用一个创业故事串起操作系统原理(三)
  3. 【MySQL】可重复读模式下 unique key失效案例
  4. Qt修炼手册12_线程同步与线程等待条件
  5. 【Python】刚刚,Python 3.10 正式发布了!我发现了一个可怕的功能...
  6. 黄聪: Bootstrap之Form表单验证神器: BootstrapValidator(转)
  7. 底部检测的do...while循环
  8. 每日一题(15)—— static有什么用途
  9. promise用法_图解 Promise 实现原理(四):Promise 静态方法实现
  10. Qt工作笔记- 解决cc1plus.exe: error: out of memory allocating
  11. 分账汇总少了一笔 和 对账和商户汇总比基础表少了一笔 问题处理方式
  12. 力改变物体形状举例_对旋转问题的思考-在离心力确定的情况下,物体的旋转情况如何通过宇宙中的相对运动情况和质量分布确定?...
  13. 为IBM 3650 M2 服务器配置RAID卡(一)
  14. Mysql 对语句的长度有限制,默认是 4M
  15. 苹果中国官网新增蚂蚁花呗 24 期分期免息服务
  16. 古月居 ROS 入门21讲--PA18 tf坐标系广播与监听的编程实现笔记
  17. Unity3D iPhone开发入门 (转)iPhoneSettings.
  18. Linux简单操作权限和相关工具
  19. mmhmm重塑视频会议、2020新款emoji可爱来袭、微软将推云游戏服务xCloud等| Decode the Week...
  20. 音频数据的建模全流程代码示例:通过讲话人的声音进行年龄预测

热门文章

  1. php 抽象类 继承,PHP 抽象类继承抽象类时的注意点
  2. anaconda python降级_anaconda 使用的一些体验与困惑
  3. C语言访问内部ROM,C语言随笔2: rom ram 及其运行的过程
  4. java生成xsd_java 生成XSD
  5. go mysql socket_Go语言实现socket实例
  6. 可能是GitHub上最好用的文字语法校验工具
  7. 皮一皮:这样的消息我也想收...
  8. 两种写法的效果一样,那么到底哪一种更好呢?
  9. 消息中间件—简谈Kafka中的NIO网络通信模型
  10. html不支持png%3e,关于Adobe Flash CS3无法导入png格式图片的修复方法(真正解决问题)...