举报投诉联系我们 手机版 热门标签 名动网
您的位置:名动网 > php 序列化函数 PHP serialize() 序列化函数

php 序列化函数 PHP serialize() 序列化函数

2023-03-04 14:20 PHP教程

php 序列化函数 PHP serialize() 序列化函数

php 序列化函数

PHP 序列化函数是一种将 PHP 变量转换为字符串的方法,它可以将复杂的数据结构(如数组和对象)转换为字符串,以便在不同的上下文中传输和存储。序列化函数是 PHP 中最常用的函数之一,它可以用于保存用户会话、保存配置文件、在不同服务器之间传输数据、在 Web 服务中传递复杂的数据等。

PHP 中有三个序列化函数:serialize()、unserialize() 和 json_encode()。serialize() 函数可以将 PHP 的变量转换成一个字符串;unserialize() 函数可以将序列化后的字符串还原成原来的 PHP 变量;json_encode() 函数可以将 PHP 的变量转换成 JSON 格式的字符串。

// 使用 serialize() 函数序列化一个 PHP 数组
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
$str = serialize($arr); // 返回 a:3:{s:1:"a";i:1;s:1:"b";i:2;s:1:"c";i:3;} 

serialize() 函数返回一个特定格式的字符串,其中 a 表示该字符串表示一个 array 类型;3 表示该 array 有三项元素;s 表示元素是 string 类型;i 表示元素是 integer 类型。

// 使用 unserialize() 函数还原序列化后的 PHP 数据 
$str = 'a:3:{s:1:"a";i:1;s:1:"b";i:2;s:1:"c";i:3;}'; 
$arr = unserialize($str); // 返回 Array ( [a] => 1 [b] => 2 [c] => 3 ) 

unserialize() 函数可以将上面 serialize() 生成的特定格式的字符串还原成原来的 PHP 数据。

  // 使用 json_encode() 函数将 PHP 数据转换成 JSON 格式   $arr = array('a' => 1, 'b' => 2, 'c' => 3);   $jsonStr = json_encode($arr); // 返回 {"a":1,"b":2,"c":3} 

json_encode() 函数可以将上面定义的 PHP 数据转换成 JSON 格式。JSON 格式是相对于 serialize() 生成格式而言要易读性好很多。

总之,PHP 的序列化函数是一项非常有用而常用的功能,它能够帮助你在不同上下文之间传递复杂的信息。但要注意不要在不安全的上下文中使用序列化函数(如 GET/POST/Cookie/URL ) ,因此你必须尊重并遵循相关安全方面的法律法规。

PHP serialize() 序列化函数

定义和用法

serialize() — 产生一个可存储的值的表示。

语法

string serialize ( mixed $value )
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。

当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

Note:

在 PHP 3 中,对象属性将被序列化,但是方法则会丢失。PHP 4 打破了此限制,可以同时存储属性和方法。请参见类与对象中的序列化对象部分获取更多信息。


更多实例

实例 

<?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";}
?>

运行实例 »

阅读全文
以上是名动网为你收集整理的php 序列化函数 PHP serialize() 序列化函数全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 名动网 mdwl.vip 版权所有 联系我们