php数组如何存到数据库中?采用序列化方案serialize() 和 unserialize()

// 一个复杂的数组 
$myvar = array( 
    'hello', 
    42, 
    array(1,'two'), 
    'apple'
); 

// 序列化 
$string = serialize($myvar); 

echo $string; 
/* 输出 
a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";} 
*/

// 反序例化 
$newvar = unserialize($string); 

print_r($newvar); 
/* 输出 
Array 
( 
    [0] => hello 
    [1] => 42 
    [2] => Array 
        ( 
            [0] => 1 
            [1] => two 
        ) 

    [3] => apple 
) 
*/

在PHP5.2以后,PHP开始支持JSON,你可以使用 json_encode() 和 json_decode() 函数,但是这两个函数有致命的缺点:如果数据结构过于复杂,会造成数据丢失。
因此,如果确定数据不是很复杂,可以使用json,如果不确定数据的复杂程度,用serialize;

上一篇:[wp] RCTF2019-nextphp


下一篇:unserialize反序列化漏洞