PHP Handbuch
Zurück |  | Weiter

# unserialize

(PHP 3 >= 3.0.5, PHP 4, PHP 5)

unserialize -- Erzeugt aus einem gespeicherten Datenformat einen Wert in PHP

## Beschreibung

mixed unserialize ( string str )

unserialize() nimmt eine einzelne Variable aus einer serialisierten Datenmenge (siehe serialize()) und wandelt sie in einen PHP-Wert zurück. Der konvertierte Wert wird zurück gegeben und kann vom Typ integer, float, string, array oder object sein. Falls der übergebene Sting nicht deserialisierbar ist, wird `FALSE` zurück gegeben und `E_NOTICE` produziert.

Warnung
`FALSE` wird sowohl im Fehlerfall als auch bei einem serialisierten `FALSE`-Wert zurück gegeben. Es ist möglich, diesen speziellen Fall abzufangen, indem man `str` mit `serialize(false)` vergleicht oder prüft, ob ein `E_NOTICE` produziert wurde.

> unserialize_callback_func-Direktive: Es ist möglich, eine Callback-Funktion anzugeben, die aufgerufen wird, wenn eine undefinierte Klasse während des Deserialisierens instanziiert werden soll (um dem Erhalt des unvollständigen object "__PHP_Incomplete_Class" vorzubeugen). Nutzen Sie Ihre `php.ini`, ini_set() oder `.htaccess`, um 'unserialize_callback_func' festzulegen. Jedesmal, wenn eine undefinierte Klasse instanziiert werden soll, wird diese Funktion aufgerufen. Um dieses Feature abzuschalten, muss die Einstellung nur ungefüllt sein. Beachten Sie zudem, dass die Direktive unserialize_callback_func erst ab PHP 4.2.0 zur Verfügung steht.

Wenn die zu deserialisierende Variable ein Objekt ist, wird PHP nach der erfolgreichen Wiederherstellung des Objekts automatisch versuchen, die __wakeup()()-Methode aufzurufen (sofern diese existiert).

Beispiel 1. unserialize_callback_func-Beispiel
`<?php $serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}'; // unserialize_callback_func Direktive ist ab PHP 4.2.0 verfuegbar ini_set('unserialize_callback_func', 'mycallback'); // Festlegen der callback_function function mycallback($classname) { // einfach ein File einbinden, dass die Klassendefinitionen enthaelt // Sie erhalten $classname, womit Sie herausfinden koennen, welche // Klassendefinition benoetigt wird } ?>`

> Anmerkung: In PHP 3 werden Methoden nicht erhalten, wenn ein serialisiertes Objekt deserialisiert wird. Diese Beschränkung wurde in PHP 4 aufgehoben, so dass Eigenschaften und Methoden wiederhergestellt werden können. Bitte lesen Sie den Abschnitt Objekte serialisieren des Kapitels Klassen und Objekte für weitere Informationen.

Beispiel 2. unserialize()-Beispiel
`<?php // Als Beispiel benutzen wir unserialize(), um Daten aus einer Datenbank in das // $session_data-Array zu laden. Das Beispiel vervollständigt das unter // serialize() beschriebene. $conn = odbc_connect("webdb", "php", "moorhuhn"); $stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata = array ($PHP_AUTH_USER); if (!odbc_execute($stmt, &$sqldata) || !odbc_fetch_into($stmt, &$tmp)) { // wenn execute oder fetch fehlschlägt, initialisiere ein leeres Array $session_data = array(); } else { // die serialisierten Daten sollten nun in $tmp[0] stehen. $session_data = unserialize($tmp[0]); if (!is_array($session_data)) { // etwas ging schief, also wieder ein leeres Array initialisieren $session_data = array(); } } ?>`

Siehe auch serialize().

Zurück | Zum Anfang | Weiter
strval | Nach oben | unset