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

时间:2018-04-30 09:57:20

标签: php arrays serialization

我已将位置信息存储在我的用户表中。现在我想要unserialize那些数据。请参阅下面的代码:

//$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)请帮助

编辑:我需要国家/地区名称Croatia。如果无法使用上述代码,请与我分享替代解决方案以获取国家名称。

1 个答案:

答案 0 :(得分:-1)

PHP serialize()unserialize()用法

http://freeonlinetools24.com/serialize

示例:

//说你有一个像这样的数组

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

// serialize

 $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()函数

$original_array=unserialize($serialized_array);
var_export($original_array);