Manual PHP Înapoi Înainte unserialize Descriere unserialize() primeşte ca parametru o singură variabilă liniarizată (vezi serialize()) şi o converteşte "înapoi "într-o variabilă PHP. Este returnată valoarea convertită, care poate să aibă tipurile integer, float, string, array sau object. Notã: Este posibilă setarea unei funcţii callback ce va fi apelată dacă o clasă nedefinită trebuie instanţiată în timpul conversiei din forma liniară (pentru a preveni preluarea incompletă a unui object). Se poate folosi php.ini, ini_set() sau un fisier .htaccess pentru a defini 'unserialize_callback_func '. De câte ori o clasă trebuie instanţiată, se va apela această funcţie. Pentru a dezactiva această facilitate, trebuie doar să ştergeţi această setare. Exemplu 1. Exemplu unserialize_callback_func ?php $serialized_object=' O:1 :"a":1 :{s:7 :"valoare";s:3 :"100" ;}'; ini_set('unserialize_callback_func' ,'mycallback'); / / setează callback_function function mycallback($classname) {/ / includeţi fişierul care conţine definiţia clasei / / se foloseşte $classname pentru a decide ce definiţie de clasă este vizată}? Notã: În PHP 3, metodele nu sunt păstrate când se foloseşte unserialize pentru un obiect. PHP 4 elimină această limitare şi restaurează stât proprietăţile cât şi metodele. Consultaţi secţiunea Serializarea obiectelor a capitolului Clase şi obiecte pentru mai multe informaţii. Exemplu 2. Exemplu pentru unserialize() ?php / / Aici se foloseşte unserialize() pentru a încărca datele unei sesiuni / / în $session_data dintr-un string selectat dintr-o bază de date. / / Acest exemplu este complementar celui pentru funcţia / / serialize. $conn = odbc_connect ("webdb", "php", "chicken"); $stmt = odbc_prepare ($conn, "SELECT data FROM sessions WHERE id = ?"); $sqldata = array ($PHP_AUTH_USER); if (!odbc_execute ($stmt, $sqldata) | | !odbc_fetch_into ($stmt, $tmp)) {/ / se iniţializează cu tablou vid în cazul in care execute sau fetch nu funcţionează $session_data = array();} else {/ / acum datele liniarizate sunt în $tmp[0]. $session_data = unserialize ($tmp[0]); if (!is_array ($session_data)) {/ / dacă ceva nu merge cum trebuie, se iniţializează cu tablou vid $session_data = array();}}? Mai consultaţi: serialize(). Înapoi Acasã Înainte Sus