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