Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

unserialize

Variablen-Funktionen

    Befehl:
mixed unserialize ( string $str )


    Parameter-Liste:
NameBeschreibung
str 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:
Erzeugt eine speicherbare Repräsentation eines Wertes
 

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:
Version 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.
4.2.0 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:
Version 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.
4.2.0 Die Direktive unserialize_callback_func steht zur Verfügung.
Variablen-Funktionen