PHP
Referenzliste
unserialize
Variablen-Funktionen
Befehl:
mixed unserialize ( string $str )
Parameter-Liste:
Beschreibung | |
---|---|
Der serialisierte String. 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). |
Beschreibung:
unserialize() nimmt eine einzelne Variable aus einer serialisierten Datenmenge und wandelt sie in einen PHP-Wert zurück.
Aktiv in Version:
(PHP 4, PHP 5, PHP 7)
Hinweis:
Hinweis:
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.
Warnung:
Warnung:
FALSE
wird sowohl im Fehlerfall als auch bei einem serialisierten FALSE
-Wert zurückgegeben. Es ist möglich, diesen speziellen Fall abzufangen, indem man str
mit serialize(false) vergleicht oder prüft, ob ein E_NOTICE
produziert wurde.Siehe auch:
unserialize() - Beispiel:
Eingabe:
<?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", "chicken"); $stmt = odbc_prepare($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata = array($_SERVER['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(); } } ?>
Beschreibung:
Mit dem Befehl unserialize() erhalten Sie aus einer serialisierten Zeichenkette ( siehe <a class="weiss" href="?mitG=1&mitG1=1&ph=serialize">serialize()</a> ), die urspr�ngliche Struktur einer "Variablen". Bitte beachten Sie, das bei einem zuvor serialisierten Objekt zwar die Eigenschaft, nicht aber die Methode geliefert wird.
Beschreibung:
Beschreibung | |
---|---|
5.6.0 | Die Manipulation der serialisierten Daten durch das Ersetzen von C: mit O: um die Objektinstanziierung ohne Aufruf des Konstruktors zu erzwingen, schlägt nun fehl. |
Die Direktive unserialize_callback_func steht zur Verfügung. |
unserialize() - Beispiel 2:
Eingabe:
<?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 } ?>
Beschreibung:
Beschreibung | |
---|---|
5.6.0 | Die Manipulation der serialisierten Daten durch das Ersetzen von C: mit O: um die Objektinstanziierung ohne Aufruf des Konstruktors zu erzwingen, schlägt nun fehl. |
Die Direktive unserialize_callback_func steht zur Verfügung. |
Variablen-Funktionen