PHP中的serialize和unserialize

PHP中的serialize和unserialize
string serialize ( mixed $value )
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
serialize返回的值结构为 type:length:value,若为integer、float,则直接返回 type:value 例:


//eg.1.string
    $tmp = "hello world";
    echo serialize($tmp);
    /*
        返回 "类型":"长度":"值":
        s:11:"hello world";    
    */
    
//eg.2.integer
    $integer = 19881223 ;
    echo serialize($integer);
    /*
        返回 "类型":"值":
        i:19881223;    
    */
    
//eg.3.double
    $double = 1988.1223 ;
    echo serialize($double);
    /*
        返回 "类型":"值":
        d:1988.1222999999999956344254314899444580078125;
    */
    
//eg.4.array    
    $arr = Array
    (
        "name" => "MrAsong",
        "mail" => "i at mrasong dot com",
        "homepage" => "http://mrasong.com"
    );
    echo serialize($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";}
    */


unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。
返回的是转换之后的值,可为 integer、float、string、array 或 object。如果传递的字符串不可解序列化,则返回 FALSE。
例:

//eg.1.string
    $string = 's:11:"hello world";';
    $value = unserialize($string);
    echo gettype($value)."\n";
    print_r($value);
    /*
        返回: string
        "hello world"
    */
    
//eg.2.integer
    $integer = 'i:19881223;';
    $value = unserialize($integer);
    echo gettype($value)."\n";
    print_r($value);
    /*
        返回:integer
        19881223 
    */
    
//eg.3.double
    $double = 'd:1988.1222999999999956344254314899444580078125;' ;
    $value = unserialize($double);
    echo gettype($value)."\n";
    print_r($value);
    /*
        返回:double
        1988.1223
        
    */
    
//eg.4.array    
    $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";}' ;
    $value = unserialize($arr);
    echo gettype($value)."\n";
    print_r($value);
    /*
        返回:
        array
        Array
        (
            [name] => MrAsong
            [mail] => i at mrasong dot com
            [homepage] => http://mrasong.com
        )
    */

添加新评论