【问题标题】:unserialize function is not returning returning string in same format反序列化函数没有返回相同格式的返回字符串
【发布时间】:2019-11-05 18:41:12
【问题描述】:

我正在从数据库中获取序列化数组,而不是尝试反序列化。但在这里它以相同的格式返回这个字符串。我有这个格式的序列化数组。

s:33:"a:2:{i:0;s:2:"80";i:1;s:3:"112";}";

这就是我试图反序列化的方式。

$industries = unserialize($industries);

但是这里这个功能不起作用。任何有关此的指导方针将不胜感激。

【问题讨论】:

  • "如果传递的字符串不是不可序列化的,则返回 FALSE" 是否返回 FALSE?
  • 实际上它以相同的格式返回这个数组。
  • @AlexHowansky 有没有办法从这种字符串中获取值。

标签: php serialization


【解决方案1】:

你的字符串被序列化了两次,

s:33:"a:2:{i:0;s:2:"80";i:1;s:3:"112";}";

是一个编码的字符串(33个字符),所以unserialize()这给了你另一个字符串

a:2:{i:0;s:2:"80";i:1;s:3:"112";}

你还需要unserialize()那个...

$industries = 's:33:"a:2:{i:0;s:2:"80";i:1;s:3:"112";}";';
$industries = unserialize($industries);
print_r(unserialize($industries));

给...

Array
(
    [0] => 80
    [1] => 112
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多