PHP序列化:serialize
定义和用法:serialize() — 产生一个可存储的值的表示
语法 string serialize ( mixed $value ) serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。 当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。 实例:
$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 unserialize()
定义和用法 unserialize() 将已序列化的字符串还原回 PHP 的值。 序列化请使用 serialize() 函数。 语法
unserialize(str)
参数 描述
str 必需。一个序列化字符串。
例子 1
<?php
$arr = array('a','b','c','unserialize','怎么用');
echo serialize($arr),'
';
// 还原序列化的数据
print_r(unserialize(serialize($arr)));
?>
输出:
参数 描述
str 必需。一个序列化字符串。
例子 1
<?php
$arr = array('a','b','c','unserialize','怎么用');
echo serialize($arr),'
';
// 还原序列化的数据
print_r(unserialize(serialize($arr)));
?>
a:5:{i:0;s:1:"a";i:1;s:1:"b";i:2;s:1:"c";i:3;s:9:"unserialize";i:4;s:9:"怎么用";}
Array ( [0] => a [1] => b [2] => c [3] => serialize [4] => 怎么用 )
Array ( [0] => a [1] => b [2] => c [3] => serialize [4] => 怎么用 )
发表评论 取消回复