在PHP中将格式化字符串转换为数组

时间:2017-02-24 21:51:58

标签: php mysql php-7

我有一个从数据库中获取的字符串,它在列中保存为值,如下所示:

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。非常感谢你

1 个答案:

答案 0 :(得分: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] =>
)