如何在 PHP 中正确序列化和反序列化数组


How serialize and unserialize correctly an array in PHP?

$array = array(
    'host_name' => array(
        'ip_add' => '127.0.0.1',
        'is_allow' => 0,
    ),
);
$str = serialize($array);

这个值插入到我的网站中。 并使用php函数file_get_contents读取它,我从该页面得到这个结果

a:1:{s:9:"host_name";a:2:{s:6:"ip_add";s:9:"127.0.0.1";s:8:"is_allow";i:0;}}

并尝试反序列化它,但它会显示如下通知:-

注意:unserialize():/Applications/XAMPP/xamppfiles/htdocs/admin 中 116 字节的偏移量 5 处出错

如果你想反序列化,你可以使用这样的东西:

<?php
$result = 'a:1:{s:9:"host_name";a:2:{s:6:"ip_add";s:9:"127.0.0.1";s:8:"is_allow";i:0;}}';
$decoded = unserialize($result);
print_r($decoded);
?>

与以下条件相同:

<?php
$array = array('host_name' => array('ip_add' => '127.0.0.1', 'is_allow' => 0));
$str = serialize($array);
$decoded = unserialize($str);
print_r($decoded);
?>