我的PHP代码序列化,但不';不序列化

我的PHP代码序列化,但不';不序列化,php,serialization,Php,Serialization,这是我的密码 $data = array( '24 Jan|8:30' => '12.6', '22 Feb|8:30' => '250', '11 Mar|8:10' => '0', '31 Apr|23:30' => '7', '32 Apr|23:30' => '80', '33 Apr|23:30' => '67', '34 r|23:30'

这是我的密码

$data = array(
        '24 Jan|8:30' => '12.6',
        '22 Feb|8:30' => '250',
        '11 Mar|8:10' => '0',
        '31 Apr|23:30' => '7',
        '32 Apr|23:30' => '80',
        '33 Apr|23:30' => '67',
        '34 r|23:30' => '45',
        '35 Ap|23:30' => '66',
        '34 Lr|23:30' => '23',
        '3 Apr|23:30' => '23'
    );

    //echo serialize($data);
    $x = unserialize('a:10:{s:12:"24 Jan|8:30 ";s:4:"12.6";s:12:"22 Feb|8:30 ";s:3:"250";s:12:"11 Mar|8:10 ";s:1:"0";s:12:"31 Apr|23:30";s:1:"7";s:12:"32 Apr|23:30";s:2:"80";s:12:"33 Apr|23:30";s:2:"67";s:12:"34 r|23:30 ";s:2:"45";s:12:"35 Ap|23:30 ";s:2:"66";s:12:"34 Lr|23:30 ";s:2:"23";s:12:"3 Apr|23:30 ";s:2:"23";}');
    var_dump($x);
在非串行化功能中不工作。
请帮忙

$data的序列化表示形式与尝试取消序列化的字符串不同

 $a = serialize($data);
 $x = unserialize($a);

在偏移量199处,您可以看到

s:12:"34 r|23:30 "
但是字符串(
s
)不是12个字符长(这就是
s:12:
的意思)。我想是有什么东西直接修改了序列化字符串。只是不要这样做:)始终取消序列化并使用结构化值

'a:10:{s:12:"24 Jan|8:30 ";s:4:"12.6";s:12:"22 Feb|8:30 ";s:3:"250";s:12:"11 Mar|8:10 ";s:1:"0";s:12:"31 Apr|23:30";s:1:"7";s:12:"32 Apr|23:30";s:2:"80";s:12:"33 Apr|23:30";s:2:"67";s:12:"34 r|23:30 ";s:2:"45";s:12:"35 Ap|23:30 ";s:2:"66";s:12:"34 Lr|23:30 ";s:2:"23";s:12:"3 Apr|23:30 ";s:2:"23";}'
…不是有效的序列化。具体来说,
s:12:“34r | 23:30”段表示字符串
34 r | 23:30
包含12个字符,但它不包含12个字符。

可能的重复