background image

function

 my_unserialize(

$txt

)

{
returnunserialize(gzuncompress(

base64_decode

(

$txt

)));

}
 
2. json_encode 

 

和 json_decode

使用 JSON

 

格式序列化和反序列化是一个不错的选择:

使用 json_encode 和 json_decode 格式输出要 serialize 和 unserialize 格式快得多。
JSON 格式是可读的。
JSON 格式比 serialize 返回数据结果小。
JSON 格式是开放的、可移植的。其他语言也可以使用它。
代码如下:
 

$a

 = 

array

('a'=> 'Apple' ,'b' => 'banana', 'c' => 'Coconut');

 

//序列化数组

$s

 = json_encode(

$a

);

echo

 

$s

;

//输出结果:{"a":"Apple","b":"banana","c":"Coconut"}

echo

 '<br /><br />';

//反序列化

$o

 = json_decode(

$s

);

 
在上面的例子中,json_encode 输出长度比上个例子中 serialize 输出长度显然要短。
3. var_export 

 

eval

var_export 函数把变量作为一个字符串输出;

eval

把字符串当成 PHP 代码来执行,反序列

化得到最初变量的内容。
代码如下:
 

$a

 = 

array

('a'=> 'Apple' ,'b' => 'banana', 'c' => 'Coconut');

 

//序列化数组

$s

 = var_export(

$a

, true);

echo

 

$s

;

//

 

输出结果: array ( 'a' => 'Apple', 'b' => 'banana', 'c' => 'Coconut', )

echo

 '<br /><br />';

//反序列化

eval

('$my_var='. 

$s

 . ';');

print_r(

$my_var

);

 
4. wddx_serialize_value 

 

和 wddx deserialize

wddx_serialize_value 函数可以序列化数组变量,并以 XML

 

字符串形式输出。