PHP 中的 serializeunserialize string serialize ( mixed $value ) serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。 这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

serialize 返回的值结构为 type:length:value,若为integerfloat,则直接返回 type:value

例:

 1//eg.1.string
 2    $tmp = "hello world";
 3    echo serialize($tmp);
 4    /*
 5        返回 "类型":"长度":"值":
 6        s:11:"hello world";
 7    */
 8
 9//eg.2.integer
10    $integer = 19881223 ;
11    echo serialize($integer);
12    /*
13        返回 "类型":"值":
14        i:19881223;
15    */
16
17//eg.3.double
18    $double = 1988.1223 ;
19    echo serialize($double);
20    /*
21        返回 "类型":"值":
22        d:1988.1222999999999956344254314899444580078125;
23    */
24
25//eg.4.array
26    $arr = Array
27    (
28        "name" => "MrAsong",
29        "mail" => "i at mrasong dot com",
30        "homepage" => "http://mrasong.com"
31    );
32    echo serialize($arr);
33    /*
34        返回 "类型":"值":
35        a:3:{s:4:"name";s:7:"MrAsong";s:4:"mail";s:20:"i at mrasong dot com";s:8:"homepage";s:18:"http://mrasong.com";}
36    */

unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。

返回的是转换之后的值,可为 integerfloatstringarrayobject。如果传递的字符串不可解序列化,则返回 FALSE

例:

 1//eg.1.string
 2    $string = 's:11:"hello world";';
 3    $value = unserialize($string);
 4    echo gettype($value)."\n";
 5    print_r($value);
 6    /*
 7        返回: string
 8        "hello world"
 9    */
10
11//eg.2.integer
12    $integer = 'i:19881223;';
13    $value = unserialize($integer);
14    echo gettype($value)."\n";
15    print_r($value);
16    /*
17        返回:integer
18        19881223
19    */
20
21//eg.3.double
22    $double = 'd:1988.1222999999999956344254314899444580078125;' ;
23    $value = unserialize($double);
24    echo gettype($value)."\n";
25    print_r($value);
26    /*
27        返回:double
28        1988.1223
29
30    */
31
32//eg.4.array
33    $arr = 'a:3:{s:4:"name";s:7:"MrAsong";s:4:"mail";s:20:"i at mrasong dot com";s:8:"homepage";s:18:"http://mrasong.com";}' ;
34    $value = unserialize($arr);
35    echo gettype($value)."\n";
36    print_r($value);
37    /*
38        返回:
39        array
40        Array
41        (
42            [name] => MrAsong
43            [mail] => i at mrasong dot com
44            [homepage] => http://mrasong.com
45        )
46    */