IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[SimpleXML] serialize et unserialize


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Par défaut [SimpleXML] serialize et unserialize
    J'ai un soucis lorsque je convertis un array afin de l'écrire sous forme d'un fichier, en utilisant la fonction serialize() . Cela fonctionne au départ, car il se trouve que c'est un tableau créé à partir de données XML, récupérées avec SimpleXml... mais j'obtiens cette "belle" erreur en "déserializant " ( fonction unserialize() ) :
    Warning: unserialize() [function.unserialize]: Node no longer exists in E:\Mes documents\Apache www\Magic_Mobile\prod\fonctions.inc.php5 on line 149
    J'ai bien tenté de transformer les données du tableau avec settype(tab[$i],"string") pour passer cela, et alors là je me demande pourquoi , settype me renvoie des chiffre à la place de mes données, qui sont pourtant de format textuelles à l'origine ...

    Ex sans settype :
    a:723:{i:0;a:4:{i:0;O:16:"SimpleXMLElement":1:{i:0;s:52:"http://content.mkmb.net/p.ashx?id=863455&f=28&t=.mp3";}i:1;O:16:"SimpleXMLElement":1:{i:0;s:9:"Disturbia";}i:2;O:16:"SimpleXMLElement": ...
    Ex avec settype :
    a:723:{i:0;a:4:{i:0;b:1;i:1;b:1;i:2;b:1;i:5;b:1;}i:1;a:4:{i:0;b:1;i:1;b:1;i:2;b:1;i:5;b:1;}i:2;a:4:{i:0;b:1;i:1;b:1;i:2;b:1;i:5;b:1;} ...

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 342
    Billets dans le blog
    17
    Par défaut
    Pas de script illustrant le dysfonctionnement à tester chez nous = difficile de t'aider.
    Pourquoi sérialiser des objets SimpleXML ?

  3. #3
    Membre confirmé Avatar de youtch
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2002
    Messages : 94
    Par défaut
    Je sérialise ces données dans le but des les sauvegarder dans un fichier simplement , fichier de cache qui rend l'affichage de mes pages de résultats de vente de produits de téléphonies plus rapide, j'ai mis dans mon 1er post les deux versions différentes de ce que j'ai eu comme résultat.
    Voici aussi les 2 fonctions qui me premettent d'écrire mes données , puis de les lire ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    /* Code d'écriture : */
    function ecrire($datas)  
    {
    	$sourcexml="MonFichier.xml";
     
    	$sortie=serialize($datas);
    	if ($fic = @fopen("./cache/".f_url($sourcexml)."_datas_".session_id(), 'wb'))
    	{
    		if (!fwrite($fic, $sortie))
    		{
    			echo"Debug : Un soucis sur l'écriture ultime du cache !";
    		}			
    	}
    	else
    	{ echo"Debug : Un soucis sur l'ouverture du cache ecrire datas !"; }
    	fclose($fic);
    }
     
     
    /* Code de lecture : */	
    function lire_datas()   
    {
    	$sourcexml="MonFichier.xml";
    	if ($fic = @fopen("./cache/".f_url($sourcexml)."_datas_".session_id(), 'r'))
    	{
    		if (!$datas=@fread($fic,2000000))
    		{
    			echo"Debug : Un soucis sur la lecture du cache !";
    		}
    		fclose($fic);
    	}
    	else
    	{ echo"Debug : Un soucis sur l'ouverture du cache datas!"; }
     
    	$datas=unserialize($datas);
    	return $datas;
    }

Discussions similaires

  1. [MySQL] serialize et unserialize sticky_post de wordpress (débutant)
    Par maxence64 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 14/01/2016, 09h08
  2. Serialize et Unserialize
    Par xess91 dans le forum Langage
    Réponses: 4
    Dernier message: 26/09/2010, 05h14
  3. Question sur Serialize et unserialize
    Par crashyear dans le forum Langage
    Réponses: 2
    Dernier message: 19/10/2007, 14h41
  4. Réponses: 6
    Dernier message: 20/09/2007, 11h11
  5. [Cookies] Pb avec Serialize / Unserialize
    Par Romalafrite dans le forum Langage
    Réponses: 2
    Dernier message: 24/11/2006, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo