unserialize --
Crea un valor PHP a partir de una representación
almacenada
Descripción
mixed unserialize ( string cadena)
unserialize() toma una variable sencilla
seriada (vea serialize()) y la convierte de
vuelta a su valor PHP. El valor convertido es retornado, y puede
ser
un integer, float, string,
array u object. En caso de que la
cadena pasada no pueda ser procesada para revertir la
seriación, se devuelve FALSE.
Directiva unserialize_callback_func:
Es posible establecer una función-llamada de retorno la
cual será llamada si una clase no definida debería
ser instanciada durante el proceso de revertir la
seriación. (para prevenir que se reciba
un object incompleto "__PHP_Incomplete_Class".) Use
su php.ini, ini_set() o .htaccess para
definir 'unserialize_callback_func'. Cada vez que una clase no
definida deba ser instanciada, ésta función
será llamada. Para deshabilitar esta
característica simplemente asigne un valor vacío a
este parámetro. También note que la directiva
unserialize_callback_func se hizo disponible en PHP 4.2.0.
Si la variable que está siendo convertida de vuelta es un
objeto, PHP intentará llamar la función
miembro __wakeup() (si existe)
automáticamente luego de haber recontruido
satisfactoriamente el objeto.
// la directiva unserialize_callback_func esta disponible a partir de PHP 4.2.0 ini_set('unserialize_callback_func', 'mi_llamada_de_retorno'); // defina su callback_function
function mi_llamada_de_retorno($nombre_clase) { // tan solo incluya un archivo que contenga su definicion de clase
// usted recibe $nombre_clase para determinar que definicion de // clase requiere } ?>
Nota:
En PHP 3, los métodos no se preservan cuando se revierte
un objeto seriado. PHP 4 elimina esta limitación y
recupera tanto propiedades como métodos. Por favor
consulte la sección Seriación de
Objetos de Clases y
Objetos para más información.
Ejemplo 2. Ejemplo de unserialize()
<?php // Aqui usamos unserialize() para cargar los datos de sesion // provenientes de la cadena seleccionada desde la base de datos en la // matriz $datos_sesion. Este ejemplo complementa aquel descrito con // serialize().
$con = odbc_connect("bd_web", "php", "gallina"); $sent = odbc_prepare($con, "SELECT datos FROM sesiones WHERE id = ?"); $datos_sql = array ($PHP_AUTH_USER);
if (!odbc_execute($sent, &$datos_sql) || !odbc_fetch_into($sent, &$tmp)) { // si la ejecucion del comando o la recuperacion de datos falla, // inicializar una matriz vacia $datos_sesion = array(); } else { // ahora deberiamos tener los datos seriados en $tmp[0]. $datos_sesion = unserialize($tmp[0]); if (!is_array($datos_sesion)) { // algo ha fallado, inicializar una matriz vacia $datos_sesion = array(); } } ?>