PHP如何序列化数据?
发布:smiling 来源: PHP粉丝网 添加日期:2020-01-10 17:15:25 浏览: 评论:0
大多数情况下,我们需要将复杂的数组存储在数据库中或PHP中的文件中。有些人可能会使用PHP内置函数来完成这项任务。所谓复杂数组是具有多个数据类型或数组的元素的数组。
但是,我们已经有了一个方便的解决方案来处理这种情况。我们不必编写自己的函数来将复杂数组转换为格式化字符串。有两种流行的变量序列化方法。(推荐:PHP教程)
1、serialize()
2、unserialize()
我们可以使用serialize()函数序列化PHP中的任何数据。serialize()函数接受一个参数,该参数是我们想要分类的数据并返回一个序列化的字符串。
程序如下:
- <?php
- //一个复杂的数组
- $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()函数示例:
- <?php
- // 一个复杂的数组
- $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():
- <?php
- // 一个复杂的数组
- $myvar = array(
- 'hello',
- 42,
- array(1, 'two'),
- 'apple'
- );
- // 序列化数据
- $string = json_encode($myvar);
- // 打印序列化的数据
- echo $string;
- ?>
输出:
["hello",42,[1,"two"],"apple"]
我们可以使用json_decode()函数解码上面程序中编码的数据,以获得原始复杂数组。
程序如下:
- <?php
- // 一个复杂的数组
- $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
- )
Tags: PHP序列化数据
- 上一篇:foreach用法是什么?
- 下一篇:nginx+php如何执行请求?工作原理介绍
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)