Funcții de gestionare a variabilelor
PHP Manual

unserialize

(PHP 4, PHP 5)

unserialize Creează o valoare PHP dintr-o reprezentare stocată

Descrierea

mixed unserialize ( string $str )

unserialize() preia o singură variabilă serializată și o convertește invers într-o valoare PHP.

Parametri

str

String-ul serializat.

Dacă variabila ce se deserializează este un obiect, după ce se reconstituie cu succes, PHP automat va încerca să apeleze funcția-membru __wakeup() (dacă aceasta există).

Notă: directiva unserialize_callback_func

Este posibil de a stabili o funcție de apel invers ce se va apela când o clasă nedefinită trebuie instanțiată în timpul deserializării. (pentru a preveni obținerea unui object incomplet "__PHP_Incomplete_Class".) Utilizați php.ini, ini_set() sau .htaccess pentru a defini 'unserialize_callback_func'. De fiecare dată când o clasă nedefinită va trebui instanțiată, această funcție va fi apelată. Pentru a dezactiva această facilitate lăsați această opțiune vidă.

Valorile întoarse

Valoarea convertită este întoarsă, și poate fi de tip boolean, integer, float, string, array sau object.

În caz că string-ul furnizat nu poate fi deserializat se va întoarce FALSE și se va emite o eroare E_NOTICE.

Istoricul schimbărilor

Versiune Descriere
5.6.0 Manipularea datelor serialiate prin înlocuirea C: cu O: pentru a forța instanțierea obiectului fără a apela constructorul acum va eșua.

Exemple

Example #1 Exemplu unserialize()

<?php
// Aici vom utiliza unserialize() pentru a încărca datele sesiunii în tabloul
// $session_data din string-ul selectat dintr-o bază de date.
// Acest exemplu îl complementează pe cel descris în funcția serialize().

$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)) {
    
// dacă execute sau fetch eșuează, se inițializează un tablou vid
    
$session_data = array();
} else {
    
// acum trebuie să avem datele serializate în $tmp[0].
    
$session_data unserialize($tmp[0]);
    if (!
is_array($session_data)) {
        
// ceva nu este în regulă, inițializează într-un tablou vid
        
$session_data = array();
    }
}
?>

Example #2 Exemplu unserialize_callback_func

<?php
$serialized_object
='O:1:"a":1:{s:5:"value";s:3:"100";}';

// directiva unserialize_callback_func este disponibilă începând cu PHP 4.2.0
ini_set('unserialize_callback_func''mycallback'); // stabilește funcția de apel invers

function mycallback($classname)
{
    
// doar includeți un fișier ce conține definiția clasei
    // veți lăsa ca $classname să-și dea seama care definiție a clasei este necesară
}
?>

Note

Avertizare

FALSE este întors atât în cazul unei erori, cât și în cazul deserializării unei valori FALSE serializate. Este posibil de a intercepta acest caz special comparând str cu serialize(false) sau interceptând eroarea E_NOTICE emisă.

Avertizare

Nu transmiteți date introduse de utilizator, ce nu sunt de încredere, funcției unserialize(). Deserializarea poate rezulta în cod ce va fi încărcat și executat datorită instanțierii și autoîncărcării obiectelor, și un utilizator rău intenționat poate să exploateze aceasta. Utilizați un format de interschimb al datelor sigur, standardizat, cum ar fi JSON (cu ajutorul json_decode() și json_encode()) dacă aveți nevoie să transmiteți date serializate utilizatorului.

A se vedea și


Funcții de gestionare a variabilelor
PHP Manual