(PHP 3 >= 3.0.5, PHP 4, PHP 5)
serialize --
Erzeugt eine speicherbare Repräsentation eines Wertes
Beschreibung
string
serialize ( mixed value )
serialize() gibt einen String zurück, der eine
Byte-Stream-Repräsentation von value enthält, die
beliebig gespeichert werden kann.
Diese Funktion dient der Speicherung oder Übergabe von PHP-Werten, ohne
dass diese ihren Typ oder ihre Struktur verlieren.
Um eine serialisierte Zeichenkette wieder als PHP-Wert verfügbar zu machen,
verwenden Sieunserialize().
serialize() kann mit allen Typen umgehen, ausgenommen
mit dem resource-Typ. Sie können sogar Arrays serialisieren,
die Referenzen auf sich selbst enthalten. Zirkelbezüge innerhalb des
Arrays/Objekts, das Sie serialisieren, werden ebenfalls gespeichert. Alle
anderen Referenzen gehen verloren.
Wenn Objekte serialisiert werden, versucht PHP die Methode
__sleep() vor der Serialisierung aufzurufen. Dies
erlaubt einem Objekt letzte "Aufräumaktionen", bevor es serialisiert wird.
Ebenso wird die Methode __wakeup() aufgerufen, wenn das
Objekt mittels unserialize() wiederhergestellt wird.
Anmerkung:
Dies funktioniert nicht korrekt bis PHP 4.0.7.
Anmerkung:
In PHP 3 werden Objekteigenschaften serialisiert, aber die Methoden gehen
verloren. Diese Beschränkung wurde in PHP 4 aufgehoben, so dass sowohl
Eigenschaften als auch Methoden wiederhergestellt werden können. Bitte
lesen Sie den Abschnitt Objekte
serialisieren des Kapitels Klassen
und Objekte für weitere Informationen.
Es ist nicht möglich PHP-interne Objekte zu serialisieren.
Beispiel 1. serialize()-Beispiel
<?php // $session_data enthält ein mehrdimensionales Array mit Session-Informationen // des aktuellen Benutzers. Wir benutzen serialize() um diese Infos am Ende // der Anfrage in eine Datenbank zu speichern.
$conn = odbc_connect("webdb", "php", "moorhuhn"); $stmt = odbc_prepare($conn, "UPDATE sessions SET data = ? WHERE id = ?"); $sqldata = array (serialize($session_data), $PHP_AUTH_USER); if (!odbc_execute($stmt, &$sqldata)) { $stmt = odbc_prepare($conn, "INSERT INTO sessions (id, data) VALUES(?, ?)"); if (!odbc_execute($stmt, &$sqldata)) { /* Irgendwas ging schief ... */ } } ?>
|
|
Siehe auch
unserialize().