PHP序列化(serialize)及反序列化(unserialize)实例讲解
在学习编程的时候,经常会听到很多不熟悉的词。
序列化就是其中之一。
这次,我将通过以下内容来谈谈 PHP 序列化。

什么是序列化
当你想将数组等保存到数据库时使用序列化。
此外,它不仅可以用于保存,还可以用于发送和接收。
当你将数组直接存储在数据库中时通常会发生什么?
让我们看下示例:
["ciyawang1", "ciyawang2", "ciyawang3"]
并尝试再次获得它。
执行结果
'Array("ciyawang1", "ciyawang2", "ciyawang3")'在没有序列化的情况下添加到数据库中后,如果再次检索,它就会变成一个字符串。
无法使用foreach语句从此字符串中提取值。
为此需要序列化。
序列化(serialize)
现在让我们实际进行序列化。
使用serialize函数进行序列化。
另外,序列化的数据类型不同,结果也会不同。
序列化数组
首先,序列化数组。
<?php $test = ["ciyawang1", "ciyawang2", "ciyawang3"]; $disp = serialize($test); echo $disp;
执行结果
a:3:{i:0;s:9:"ciyawang1";i:1;s:9:"ciyawang2";i:2;s:9:"ciyawang3";}
请注意,第一个 [a:3] 部分以 [type:value] 的形式显示。
表示数组的类型是a。
另外,之后显示变成数组数据部分,用[key;value;]表示。
序列化整数
接下来是整数。
<?php $test = 50; $disp = serialize($test); echo $disp;
执行结果
i:50;

表示整数的类型是 i。
序列化字符串
最后是一个字符串。
<?php $test = 'ciyawang'; $disp = serialize($test); echo $disp;
执行结果
s:8:"ciyawang";

表示字符串的类型是 s。
在字符串的情况下,还有一个数字,表示字节数。
序列化很容易。
然后将序列化后的数据发送出去或者存入数据库。
反序列化(unserialize)
为了使用序列化的数据,不能直接使用。
你需要使用unserialize来恢复原来的类型和结构。
让我们回到上面的示例。
反序列化数组
首先,反序列化数组。
<?php $test = ["ciyawang1", "ciyawang2", "ciyawang3"]; $disp = serialize($test); echo $disp; echo "<br />"; echo print_r(unserialize($disp));
1.输出序列化后的$disp,并打上换行符(<br />)使其更容易理解。
2.print_r打印输出反序列化后的$disp
执行结果
a:3:{i:0;s:9:"ciyawang1";i:1;s:9:"ciyawang2";i:2;s:9:"ciyawang3";}
Array ( [0] => ciyawang1 [1] => ciyawang2 [2] => ciyawang3 ) 1
第一行是序列化的结果,第二行是反序列化的结果。
反序列化整数
<?php $test = 50; $disp = serialize($test); echo $disp; echo "<br />"; echo unserialize($disp);
执行结果
i:50; 50

反序列化字符串
<?php $test = 'ciyawang'; $disp = serialize($test); echo $disp; echo "<br />"; echo unserialize($disp);
执行结果
s:8:"ciyawang"; ciyawang

恢复为原始字符串。
结语
本篇文章讲的是PHP的序列化。
能把数据结构和类型原封不动的保存起来,非常方便,所以一定要记住。
本文来源:词雅网
本文地址:https://www.ciyawang.com/php-serialize-unserialize.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
Array_combine函数:让数组合并更简单
引言作为一名程序员,我们经常需要合并两个或多个数组。这时候,一个非常方便的函数就出现了,那就是array_combine函数。什么是array_combine函数?array_combine函数是PH...
-
使用PHP读取本地文件的方法
对于需要处理本地文件的PHP应用程序,读取本地文件是必不可少的操作。本文将介绍如何使用PHP读取本地文件。使用file_get_contents函数读取本地文件file_get_contents函数是...
-
PHP Cookies设置:了解cookie是如何工作的
在Web开发中,cookie是一种常见的技术,可以帮助我们保存用户信息,跟踪用户行为和提供个性化体验。在本文中,我们将深入探讨PHP cookies的设置。1. 什么是cookie?cookie是一种...
-
php获取当前月份及相关应用
在PHP中,获取当前月份的方法非常简单。只需要使用date()函数,并指定参数为“m”即可。代码如下:$month = date("m"); echo&nbs...
-
使用PHP的strip_tags()函数从字符串中去除HTML标签
strip_tags()函数可以从字符串中去除HTML标签。请注意,使用allow参数允许的HTML标记不会被剥离,但通常HTML标记总是被剥离。 顺便说一句,它有一个二...
-
如何使用PHP读取文件的6种方法
总结了用PHP读取文件的方法。 试着用6种方法读入文件。 file函数...
-
在PHP中检查文件存在的两种方法!(is_file)
我正在写如何检查 PHP 中是否存在“具有指定路径的文件”。 您可以使用以下两个函数来检查文件路径是否存在。...
-
通俗易懂的讲解nl2br()函数,将换行代码转换成br标签
这次,我将解释将换行字符转换为br标签的nl2br函数! 它非常容易使用! 但是,如果nl2br()函数使用不正确,它可能无法正确转换,所以需要注意!...
-
使用pathinfo函数轻松获取扩展名和文件名
你是否遇到过只想从文件路径中提取文件名或扩展名的情况? 我认为有多种方法,例如使用split分隔符拆分文件路径或使用substr函数提取文件路径。 但是...
-
使用PHP的is_null()函数检查变量是否为NULL
使用PHP的is_null()函数检查变量是否为NULL。 NULL表示没有值,不同于“0”或空字符串。 is_null()函数允许您检查变量是否为NU...
词雅网