从Serialize数据中获取数据

时间:2015-07-20 19:46:36

标签: php serialization

我要做的是从序列化数据中获取数据。我得到了它输入电源名称的地方,但我想要做的就是让它显示在用户是否有电源的地方。

这是序列化数据

a:1:{s:6:"powers";a:1:{s:7:"profile";a:1:{s:3:"has";b:0;}}}

尝试获取has部分数据,但它只是获得权力的名称。

PHP代码

foreach ($c['powers'] as $a => $b) {
            echo $a;

}

$c['powers']是序列化数据的开头,如您所见s:6:"powers"

2 个答案:

答案 0 :(得分:0)

让我们看看它看起来如何反序列化:

var_export(unserialize('a:1:{s:6:"powers";a:1:{s:7:"profile";a:1:{s:3:"has";b:0;}}}'));

输出:

array (
  'powers' =>
  array (
    'profile' =>
    array (
      'has' => false,
    ),
  ),
)

所以'has' => false不是c['powers']的元素,而是$c['powers']['profile']的元素

答案 1 :(得分:0)

$coded = 'a:1:{s:6:"powers";a:1:{s:7:"profile";a:1:{s:3:"has";b:0;}}}';

$decoded = unserialize($coded);

 $has = $decoded['powers']['profile']['has'];

var_dump($has);