Bonjour à tous,
Pouvez-vous m'aider à utiliser les deux fonctions serialize et unserialize ?
J'en ai besoin pour le developpement d'une application PHP orienté objet.
J'ai une classe "TEST" que j'utilise comme ceci :
Mon premier echo me retourne bien le libelle de l'application (ASKPLAN).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php $obj = new TEST(); $obj->CREATE(2); echo "création objet ok : ".$obj->GET_LBLAPPLICATION(); $_SESSION['tmp'] = serialize($obj); echo "<br />Dans la session : ".$_SESSION['tmp']; unset($obj); ?> <br /> <a href='TEST.SERIALIZATION.PHP'>Suite</a>
Mon deuxième echo me retourne ceci :
O:4:"TEST":4:{N;s:7:"ASKPLAN";N;N;N;}
(Je voudrais savoir egalement à quoi correspond cette chaine, je suppose que le O c'est pour Object, "TEST" c'est le nom de ma classe, mais le reste : "N" et "s", le 7 c'est quoi?)
Je continue sur l'autre page et je fais :
et là c'est le drame... voici ce que ca me retourne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $obj = unserialize($_SESSION['tmp']); echo "test unserialize : ".$obj->GET_LBLAPPLICATION(); unset($obj);
Notice: unserialize() [function.unserialize]: Error at offset 16 of 37 bytes in D:\Apache_www\DSC\TEMP\TEST\TEST.SERIALIZATION.PHP on line 9
J'ai ajouter dans ma classe "TEST" les deux fonctions necessaire à la serialisation et deserialisation à savoir __wakeup() et __sleep()
Voici ce qu'elles contiennent :
A mon avis pour la fonction "__wakeup()" c'est pas ca du tout, mais c'est ce que je viens d'essayer de faire et je voulais le montrer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public function __wakeup() { $this->idapplication=$this->__wakeup[0]; $this->lblapplication=$this->__wakeup[1]; $this->urlapplication=$this->__wakeup[2]; $this->ObjOracle=$this->__wakeup[3]; } public function __sleep() { return array($this->idapplication, $this->lblapplication, $this->urlapplication, $this->ObjOracle); }
Si quelqu'un peut m'aider.
Partager