如何在PHP中序列化数据以取消序列化?

如何在PHP中序列化数据以取消序列化?,php,arrays,serialization,Php,Arrays,Serialization,我已将位置信息存储在我的用户表中。现在我想取消序列化该数据。请参见下面我的代码: //$seri = $getUser['location_info']; $seri = 'a:8:{s:4:"city";s:6:"Novska";s:6:"region";s:27:"Sisacko-Moslavacka Zupanija";s:7:"country";s:2:"HR";s:12:"country_name";s:7:"Croatia";s:14:"continent_code";s:2:"EU

我已将位置信息存储在我的用户表中。现在我想
取消序列化该数据。请参见下面我的代码:

//$seri = $getUser['location_info'];
$seri = 'a:8:{s:4:"city";s:6:"Novska";s:6:"region";s:27:"Sisacko-Moslavacka Zupanija";s:7:"country";s:2:"HR";s:12:"country_name";s:7:"Croatia";s:14:"continent_code";s:2:"EU";s:10:"ip_address";s:10:"5.43.160.0";s:13:"currency_code";s:3:"HRK";s:15:"currency_symbol";s:12:"kn";}';
$unseri = unserialize($seri);
var_dump($unseri); exit; //Output: bool(false)
取消序列化时,我得到
bool(false)
请帮助

编辑:我需要国家名称
克罗地亚
。如果上述代码不可用,请与我分享获取国家名称的替代解决方案。

PHP serialize()unserialize()用法

示例:

//假设你有一个类似这样的数组

$multidimentional_array= array(
array(
    array("rose", 1.25, 15),
    array("daisy", 0.75, 25),
    array("orchid", 4, 7) 
   ),
array(
    array("rose", 1.25, 15),
    array("daisy", 0.75, 25),
    array("orchid", 5, 7) 
   ),
array(
    array("rose", 1.25, 15),
    array("daisy", 0.75, 25),
    array("orchid", 8, 7) 
)
);
//连载

 $serialized_array=serialize($multidimentional_array);
 print_r($serialized_array);
这会给你一个类似这样的输出

a:3:{i:0;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:4;i:2;i:7;}}i:1;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:5;i:2;i:7;}}i:2;a:3:{i:0;a:3:{i:0;s:4:"rose";i:1;d:1.25;i:2;i:15;}i:1;a:3:{i:0;s:5:"daisy";i:1;d:0.75;i:2;i:25;}i:2;a:3:{i:0;s:6:"orchid";i:1;i:8;i:2;i:7;}}}
同样,如果要恢复原始数组,只需使用PHP unserialize()函数


根据:“如果传递的字符串不是不可序列化的,则返回FALSE并发出E_通知。”。这就是你的全部代码吗?序列化数据上的一个突变可能会破坏它。你手动进行序列化了吗
s:12:“kn”
<表示字符串长度应为12个字符,而不是2个字符。把它改成
s:2:“kn”
就可以了。我已经检查过了<代码>“kn”
外观
和#107n所以长度是12。@开发者-这些是字符的HTML编码版本,你们得到的序列化不是那个么多。实际上,您在那里对两个字符的字符串
kn
进行了编码。打开错误报告,我打赌您将得到
unserialize():偏移量257处的错误,共266字节
$original_array=unserialize($serialized_array);
var_export($original_array);