【问题标题】:How to serialize data to unserialize in PHP?如何序列化数据以在 PHP 中反序列化?
【发布时间】:2018-04-30 09:57:19
【问题描述】:

我已将位置信息存储在我的用户表中。现在我想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。如果上面的代码是不可能的,请您分享我获取国家名称的替代解决方案。

【问题讨论】:

  • 根据documentation:'如果传递的字符串不是不可序列化的,则返回 FALSE 并发出 E_NOTICE。'。这就是你的全部代码吗?
  • 对该序列化数据的突变可能会破坏它。
  • 你手动滚动那个序列化? s:12:"kn" s:2:"kn" 即可正常工作。
  • 我已经检查过了。 "kn" 看着 kn 所以长度是 12。
  • @Developer - 这些是字符的 HTML 编码版本,你得到的序列化不是那个。您实际上在那里编码了 2 个字符的字符串 kn。打开错误报告,我打赌你会收到unserialize(): Error at offset 257 of 266 bytes

标签: php arrays serialization


【解决方案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) 
)
);

//序列化

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

【讨论】:

    猜你喜欢
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多