首页 >后端开发 >php教程 >PHP序列化数组

PHP序列化数组

王林
王林原创
2024-08-29 12:45:46871浏览

PHP 序列化数组函数用于序列化给定数组并转换值的可存储表示形式。序列化数组函数是 PHP 中的内置函数。数据串行化意味着将值转换为位序列,以存储在内存缓冲区、文件中或通过网络传输。数组是复杂的数据类型;我们无法直接看到它的内容。 Serialize() 函数将数组转换为简单的字符串,我们可以将其保存在文件中并通过 URL 等方式通过网络传输。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

序列化数组函数的语法 –

序列化(数组);

参数 –

  • 数组 – 这不是一个可选参数,用于指定要序列化或转换为可存储表示形式的数组或值。
  • 返回值 –该方法的返回值是一个字符串,它是数组的字节流表示,可以是存储或发送。

PHP 序列化数组函数的工作原理

PHP serialize() 数组函数接受一个参数(数组/值),这是必需参数。假设我们有一个数组(1,2,3,4),我们想将其存储在文件中,所以首先我们需要通过调用函数serialize(array)来序列化它,该函数序列化数组并返回字符串转换数组为“a:4:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;}”,我们可以将其存储在更远的地方文件或通过网络发送。

PHP serialize() 数组函数的示例

以下是下面提到的示例

示例#1

序列化复杂数组的serialize()数组函数示例 –

接下来,我们通过以下示例编写 PHP 代码来更清楚地理解 serialize() 数组函数,其中,serialize() 函数用于序列化给定的数组,如下 –

代码:

<?php
// create complex array
$array = array( 'text', 200, 400, 'apple', array( 2, 'two', 3, 'three' ) );
// printing complex array
print("The complex array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// unserializing the serialized array
$unser_array = unserialize( $array_string );
// printing the unserialized array
print_r( $unser_array );
?>

输出:

PHP序列化数组

如上面的代码所示,使用serialize()函数创建并序列化复杂数组,该函数返回数组的字节流或字符串转换。此外,使用 unserialize() 函数将序列化数组转换回数组,这与原始数组相同,如上面的输出所示。

示例#2

serialize() 数组函数序列化数组并将其存储到文件中的示例 –

接下来,我们通过下面的示例编写 PHP 代码来更清楚地理解序列化()数组函数,其中序列化()函数用于序列化给定的数组并将其永久存储到文本文件中,如下所示 -

代码:

<?php
// create an array
$array = array( 'apple', 'banana', 'mango', 'orange', 'cherry' );
// printing complex array
print("The array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// save the array string to a Ex text file
file_put_contents('Ex.txt', $array_string);
// access back the data from the save text file.
$file_array = file_get_contents('Ex.txt');
// printing the file array
print( "The serialize file array is : " );
print( $file_array );
print( "<br>");
// unserializing the serialized array
$unser_array = unserialize( $file_array );
// printing the unserialized array
print( "The unserialize file array is : " );
print_r( $unser_array );
print( "<br>");
?>

输出:

PHP序列化数组

如果我们检查 Ex.txt 文件,内容是 –

PHP序列化数组

如上面的代码,复杂数组被创建并序列化;序列化数组永久存储在文本文件中。此外,使用 unserialize() 函数将存储的序列化数组读回并转换为数组,这与原始数组相同,如上面的输出所示。

示例 #3

serialize() 数组函数序列化数组和编码的示例 –

接下来,我们编写PHP代码来理解serialize()数组函数,其中serialize()函数用于序列化给定的数组并将其编码为URL以跨多个页面发送,如下 –

代码:

<?php
// create an array
$array = array (
1 => "one",
2 => "two",
3 => "three"
);
// printing an array
print("The array is : ");
print_r( $array );
print( "<br>");
// serialize the complex array
$array_string = serialize( $array );
// printing the serialize array
print( "The serialize array is : " );
print( $array_string );
print( "<br>");
// encode the array string
$enc_array = urlencode( $array_string );
print( "The encode serialize array is : " );
print( $enc_array );
print( "<br>");
// deencode the encoded array string
$dec_array = urldecode( $enc_array );
// printing the file array
print( "The deencode serialized array is : " );
print( $dec_array );
print( "<br>");
?>

输出:

PHP序列化数组

如上面的代码,复杂数组被创建并序列化;使用 urlencode() 函数对序列化数组进行编码。进一步,使用 urldecode() 函数将编码后的序列化数组解码为数组,这与原始数组相同,如上面的输出所示。

结论

PHP Zip 文件用于以压缩形式存储一堆文件或目录,稍后也可以解压缩。

以上是PHP序列化数组的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:PHP array_push()下一篇:PHP array_pop()