(PHP 4, PHP 5)
unserialize — Crea un valore PHP a partire da una rappresentazione archiviata
La funzione unserialize() prende il formato serializzato di una variabile (vedere serialize()) e la riporta al valore PHP.
str
La stringa serializzata.
Se la variabile da ripristinare è un oggetto, dopo avere ricostruito l'oggetto, il PHP cercherà di eseguire la funzione membro __wakeup() (se esiste).
Nota: Direttiva unserialize_callback_func
E' possibile impostare una funzione di callback che possa essere richiamata se, durante la fase di deserializzazione, occorre istanziare una classe indefinita. (per evitare di ottenere un tipo object incompleto "__PHP_Incomplete_Class".) Per definire il parametro 'unserialize_callback_func' si può agire sul php.ini, o usare ini_set() oppure con .htaccess. Verrà utilizzata questa funzione ogni volta che occorre istanziare una classe indefinita. Per disabilitare questa opzione, lasciare vuota questa impostazione.
Il valore convertito è restituito, e può essere un boolean, integer, float, string, array oppure object.
Nel caso in cui la stringa passata non sia deserializzabile la funzione restituisce FALSE
e genera
un E_NOTICE
.
Versione | Descrizione |
---|---|
4.2.0 | La direttiva unserialize_callback_func è disponibile. |
Example #1 Esempio di uso di unserialize()
<?php
// In questo esempio si usa unserialize() per caricare i dati nell'array
// $session_data dalla stringa estratta da un database.
// Questo esempio è complementare a quello descritto in 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)) {
// se odbc_execute o odbc_fetch_into generano un errore, si predispone un array vuoto
$session_data = array();
} else {
// ora abbiamo i dati serializzati in $tmp[0].
$session_data = unserialize($tmp[0]);
if (!is_array($session_data)) {
// qualcosa non ha funzionato, si predispone un array vuoto
$session_data = array();
}
}
?>
Example #2 Esempio di unserialize_callback_func
<?php
$serialized_object='O:1:"a":1:{s:5:"value";s:3:"100";}';
// direttiva unserialize_callback_func disponibile da PHP 4.2.0
ini_set('unserialize_callback_func', 'mycallback'); // imposta la callback_function
function mycallback($classname)
{
// includere un file contenente la definizione di classe
// $classname indica la classe da usare
}
?>
FALSE
è restituito sia in caso di errore e sia in caso di de-serializzazione
del valore FALSE
. Questo caso particolare può essere intercettato
confrontando str
con
serialize(false) o rilevando il
E_NOTICE
generato.