首页  >  问答  >  正文

php unserialize函数出错,很奇怪?

$test_str = "code|s:5:\"ZH9JC\";state|s:10:\"wn4rzbnxpp\";";
var_dump(unserialize($test_str));

这是代码,简单的字符串,但还是出错。。。

PHP中文网PHP中文网2771 天前407

全部回复(5)我来回复

  • 黄舟

    黄舟2017-04-11 10:19:10

    序列化的$test_str是数组吗?明显不是serialize后的。如果是的话 序列化不是这个样子的,如下:

    $arr = array(
                'code' => 'ZH9JC',
                'state' => 'wn4rzbnxpp'
            );
    
    $str = serialize($arr);
    dump($str);
    // string(59) "a:2:{s:4:"code";s:5:"ZH9JC";s:5:"state";s:10:"wn4rzbnxpp";}"
    $content = unserialize($str);
    dump($content);
    //
    array(2) {
      ["code"] => string(5) "ZH9JC"
      ["state"] => string(10) "wn4rzbnxpp"
    }

    回复
    0
  • 怪我咯

    怪我咯2017-04-11 10:19:10

    你这字符串不是 标准的序列化的值, unserialize 函数无法识别你这字符换,就抱错了

    回复
    0
  • ringa_lee

    ringa_lee2017-04-11 10:19:10

    $test_str确定是serialize的结果?

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-11 10:19:10

    这个不是序列化... 格式都不对

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 10:19:10

    不是序列化的,所以转不了

    回复
    0
  • 取消回复