serialize und unserialize

hoctar

Erfahrenes Mitglied
Hallo :)
Wofür wird serialize und unserialize verwendet ? Und muss man das für etwas bestimmtes verwenden oder ist die funktion nur ein "kann, aber muss nicht" zusatz ? :)

kann mir einer zeigen wie ich diesen serializierten wert in normales PHP umwandel:
PHP:
$xy = 'a:9:{i:1;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:2;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:3;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:4;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Wald";}i:5;a:3:{s:3:"lvl";i:1;s:4:"name";s:11:"Dorfzentrum";s:3:"typ";s:4:"Erde";}i:6;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Lehm";}i:7;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:8;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:9;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}}';
 
Wie du schon gesagt hast: unserialize verwandelt den String wieder zurück.
Und jetzt zu deiner Frage: Wenn du ein Array, oder ein Objekt abspeichern möchtest, geht das leider nicht von Haus aus. Datenbanken oder Textdateien verstehen sich nicht wirklich mit dem Datentyp "Array" oder "Objekt". Daraum wird aus dem jeweiligen Typ ein String gemacht, der sich abspeichern lässt. Ist eh ganz einfach, oder ?
 
ja :) klingt alles logisch ^_^ danke für die erklärung ^_^
aber leider schaf ich den befehel unserialize nicht zubenutzen ..
kannst du mir ein beispiel geben wie ich den string in ein PHP code umwandele und in mit echo oder so ausgebe, bitte ^^
PHP:
$xy = 'a:9:{i:1;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:2;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:3;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:4;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Wald";}i:5;a:3:{s:3:"lvl";i:1;s:4:"name";s:11:"Dorfzentrum";s:3:"typ";s:4:"Erde";}i:6;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Lehm";}i:7;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:8;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:9;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}}';
 
PHP:
<pre>
<?php
$xy = 'a:9:{i:1;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:2;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:3;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:4;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Wald";}i:5;a:3:{s:3:"lvl";i:1;s:4:"name";s:11:"Dorfzentrum";s:3:"typ";s:4:"Erde";}i:6;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Lehm";}i:7;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:8;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}i:9;a:3:{s:3:"lvl";i:0;s:4:"name";s:4:"Leer";s:3:"typ";s:4:"Erde";}}';  

print_r(unserialize($xy));
?> 
</pre>

Gibt dir einen säuberlich geordneten Array mit den Inhalten ;)
 
Die Serialisierung wird beispielsweise zum Speichern des $_SESSION-Variablenwerts verwendet. Auch zur Übertragung und Rekonstruktion von Variablenwerten ist es geeignet, da es nicht nur den Wert sondern auch Informationen über den Datentyp enthält.
 
Zurück