Classe serializer : serialize() et unserialize() identiques à php

Soyez le premier à donner votre avis sur cette source.

Vue 14 499 fois - Téléchargée 839 fois

Description

La classe Serializer contient 2 fonction publiques :
serialize() et unserialize() identiques à php qui peuvent servirent à l'échange de données avec un fichier php

serialize : retourne une chaîne contenant une représentation linéaire d'une variable, pour stockage.
unserialize : prend une variable linéarisée et la convertit en variable (boolean, number, string, array ou object).

Exemple d'utilisation de cette source :
Vous voulez enregistrer un tableau Array de votre flash dans votre base de donnée. Il suffit de linéariser le tableau avec la fonction serialize() de la classe Serializer() et de l'envoyer à un fichier php qui l'enregistrera dans la base de donnée.
Pour récupérer le tableau, faite un fichier un php qui récupère la chaine linéarisée enregistrée dans la base, et qui l'envoi à la flash. Utilisez ensuite la fonction unserialize() de la classe Serializer pour récupérer le tableau.
De plus comme ces fonctions donnent les même résultats que celle de php, avant d'enregistrer la variable dans la base de donnée, un script php peut la délinéariser, la traiter (faire des vérifications par exemple) et la relinéariser.

J'espère que cette source vous servira à quelque chose et que j'ai que je l'ai assez commentée ;-)

Source / Exemple :


//Utilisation de la classe :
var serial:Serializer = new Serializer(); // On charge la classe Serializer

serial.serialize(variable); // renvoi variable linéarisée
serial.unserialize(chaine); // renvoi chaine délinéarisée

Conclusion :


Vala utilisez cette source comme il vous plaira, et n'hésiter pas à laisser un commentaire.
Si vous utilisez cette source, ça serait sympa de mettre un tout ptit lien vers http://www.murties.com sur votre site ;-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

pou151
Messages postés
1
Date d'inscription
jeudi 7 septembre 2006
Statut
Membre
Dernière intervention
30 janvier 2009

Super merci :P
cs_OphidiaN
Messages postés
235
Date d'inscription
mercredi 4 avril 2001
Statut
Membre
Dernière intervention
9 novembre 2007

Hello. Bah j'avoue c'est un peu ce que je cherchais, vu que je voulais transférer par XMLSocket des objets (sans utiliser des usines à gaz comme red5 ou autre). Cela dit une petite info trouvée en décompilant un swf utilisant remoting : ils ont aussi codé un système de sérialisation (malheureusement différent du serialize() php) mais assez intéressant. On le retrouve dans mx.data.binding, une classe ObjectDumper :)

ex:

var p = new Object();
p.a=6;
p.arr=new Array('test','lol');
p.b="salut";

trace(mx.data.binding.ObjectDumper.toString(p, true, true,true))

trace:
{a: 6, arr: ["test", "lol"], b: "salut"}

la syntaxe d'un objet en flash en réalité.

je ne sais pas si amfphp utilise ce système pour transférer.. mais ça serait intéressant de voir ça.
Skreo
Messages postés
53
Date d'inscription
samedi 12 novembre 2005
Statut
Membre
Dernière intervention
25 août 2008

T'es à coté de la plaque toi... Déjà dans le lien que tu passes c'est du JS, et en plus c'est pas simplement 2 appels de foncitons, mais regarde dans les fichiers js, les code est assez gros ^^
cs_xorax
Messages postés
3
Date d'inscription
samedi 29 novembre 2003
Statut
Membre
Dernière intervention
19 septembre 2006

j'ai mieu!!!
pourquoi une classe quand on peut juste déclarer 2 fonctions, comme en php ?
http://www.xorax.info/blog/programmation/40-javascript-serialize-php.html
Skreo
Messages postés
53
Date d'inscription
samedi 12 novembre 2005
Statut
Membre
Dernière intervention
25 août 2008

Merci TOP30 !

En effet le code que tu proposes peut sembler plus lisible à beaucoup de personnes, mais pour moi c'est tout aussi lisible. Question d'habitudes ^^

Et tu dis que je n'ai fait que la moitier du boulot en ayant pas fait la classe pour php. Mais non j'ai tout fait, puisque les fonctions serialize et unserialize sont déjà incluses dans php !
Si c'était mon propre système, j'aurais justement fait un système en xml ou même beaucoup plus optimisé (comme j'ai fait pour la version 2 de mon site, qui n'est d'ailleurs pas encore sortie). Mais à ce moment là il faut créer la fonction équivalente en php.
Et comme il est plus simple d'utilise une fonction déjà existante dans php, et de plus qui prend beaucoup moins de ressources qu'une fonction de linéarisation qu'on inventerait, j'ai choisi de faire une copie de serialize() et unserialize() pour flash ;-)

Evidemment, pour les graphistes ou pour ceux qui ne développent pas d'applications flash communiquant avec un server web, cette source n'a pas grand interêt ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.