如何解析这个并获取具体内容

时间:2014-09-11 09:16:12

标签: php

我在数据库的一个字段中有这些数据:

a:4:{i:15;s:0:"";i:26;s:0:"";i:33;s:0:"";i:1004;a:1:{s:12:"Special Hash";s:33:"1b44dxrLsCgKQiiVNMRVN5rmfXg84FEds";}}

我需要从中得到这个:

1b44dxrLsCgKQiiVNMRVN5rmfXg84FEds

(s:33,其大小可能因不同的表格而异,例如可以是s:34)

已经尝试过:

$all=json_decode($this);
$hash=$all['Special Hash'];
$hash=$all->{'Special Hash']};

但没有成功

编辑:

感谢Terr的第一个回答(由Hanky웃Panky编辑),我能够通过以下方式获取数据:

echo unserialize($mydata)['1004']['Special Hash'];

1 个答案:

答案 0 :(得分:2)

您所看到的不是JSON,而是使用serialize()的PHP序列化数组。您可以通过unserialize()

放置该字符串来访问原始数组
$string='a:4:{i:15;s:0:"";i:26;s:0:"";i:33;s:0:"";i:1004;a:1:{s:12:"Special Hash";s:33:"1b44dxrLsCgKQiiVNMRVN5rmfXg84FEds";}}';
print_r(unserialize($string));

<强>输出:

Array
(
    [15] => 
    [26] => 
    [33] => 
    [1004] => Array
        (
            [Special Hash] => 1b44dxrLsCgKQiiVNMRVN5rmfXg84FEds
        )

)

<强> Fiddle