2017-02-24 49 views
1

我有一个字符串,我从数据库中获取,它保存在一个列中的值,是这样的:转换格式化字符串数组中的PHP

a:6:{s:4:"host";s:8:"somehost";s:4:"user";s:8:"someuser";s:4:"pass";s:8:"somepass";s:3:"enc";b:0;s:4:"port";s:3:"xxx";s:5:"buggy";b:0;} 

这就是我得到的,但我需要它在PHP数组格式化是这样的:

array(6) { ["host"]=> string(8) "somehost" ["user"]=> string(8) "someuser" ["pass"]=> string(8) "somepass" ["enc"]=> bool(false) ["port"]=> string(3) "xxx" ["buggy"]=> bool(false) } 

这是一个旧的系统,他们将数据保存为以上,但现在我需要读它,我不知道如何处理它。奇怪的是,它也保存了每个字段的长度(就像他们保存阵列一样)。有没有在PHP的方式来转换它?我检查了数据库,字段的类型是varchar。谢谢你这么多

+3

http://php.net/manual/en/function.unserialize.php – AbraCadaver

+0

@AbraCadaver谢谢你!我需要什么! –

回答

1

这注定是重复的,但他们很难找到没有在标题unserialize()serialize(),但这是从serialize()数组:

print_r(
unserialize('a:6:{s:4:"host";s:8:"somehost";s:4:"user";s:8:"someuser";s:4:"pass";s:8:"somepass";s:3:"enc";b:0;s:4:"port";s:3:"xxx";s:5:"buggy";b:0;}') 
); 

产量:

Array 
(
    [host] => somehost 
    [user] => someuser 
    [pass] => somepass 
    [enc] => 
    [port] => xxx 
    [buggy] => 
)