【问题标题】:convert formated string to array in PHP [duplicate]在PHP中将格式化的字符串转换为数组[重复]
【发布时间】:2017-07-15 21:25:20
【问题描述】:

我有一个从数据库中获取的字符串,它被保存为列中的一个值,是这样的:

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

【问题讨论】:

标签: php mysql php-7


【解决方案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] =>
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多