如何正确序列化和反序列化 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;}}

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

Notice: unserialize(): Error at offset 5 of 116 bytes in /Applications/XAMPP/xamppfiles/htdocs/admin

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

<?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);
?>