2017-02-24 70 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] => 
)