2017-02-24 4 views
1

Ich habe eine Zeichenfolge, die ich aus der Datenbank zu erhalten, es als Wert in einer Spalte gespeichert ist, ist so etwas wie dieses:convert formated String Array in 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;} 

Das ist, was ich bekommen, aber ich brauche es in einem PHP-Array wie folgt formatiert:

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

es ist ein altes System und sie speichern, wie oben, dass die Daten, aber jetzt brauche ich es zu lesen, und ich weiß nicht, wie es zu handhaben. Es ist merkwürdig, dass es auch die Länge jedes Feldes speichert (wie wenn sie das Array speichern). Gibt es eine Möglichkeit in PHP, es zu konvertieren? Ich überprüfte die Datenbank und der Typ des Feldes ist varchar. Vielen Dank

+3

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

+0

@AbraCadaver danke !! das, was ich brauche! –

Antwort

1

Dies ist verpflichtet, ein Duplikat zu sein, aber sie sind schwer ohne unserialize() oder serialize() im Titel zu finden, aber das ist ein Array von 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;}') 
); 

Ausbeuten:

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