serialize() et unserialize()
Posté : 07 févr. 2012, 01:58
Je suis aller lire lire serialize(). J'ai rien compris, une variable ne pas perdre sa valeur et son type. Donner moi un exemple ou serialize() sera utile?
Venez poser vos questions PHP, MySQL, HTML5, CSS, Javascript, Gestion de serveurs à la communauté PHPfrance
https://forum.phpfrance.com/
C'est pas tellement serialize que tu n'as pas compris, c'est php (et c'est nécessaire pour comprendre à quoi servent serialize/unserialize).Je suis aller lire lire serialize(). J'ai rien compris, une variable ne pas perdre sa valeur et son type. Donner moi un exemple ou serialize() sera utile?
Mais si je fais:C'est pas tellement serialize que tu n'as pas compris, c'est php (et c'est nécessaire pour comprendre à quoi servent serialize/unserialize).Je suis aller lire lire serialize(). J'ai rien compris, une variable ne pas perdre sa valeur et son type. Donner moi un exemple ou serialize() sera utile?
Une page web php ne "vit" pas très longtemps : Entre le moment où elle est éxécutée, et le moment où elle est terminée, dans la plupart des cas il s'écoulera moins d'une seconde (souvent beaucoup moins que ça). Tout juste le temps de fabriquer du HTML et de l'envoyer au client.
Tu vas avoir bientôt besoin d'enregistrer des données qui doivent durer plus longtemps (que tu vas consulter par exemple dans un autre script qui sera éxécuté plus tard). Pour cela tu vas t'appuyer sur un média de stockage de données, des fichiers ou une base de données. Ça ira très bien pour des données simples - des chiffres, des chaînes de caractères, des dates... Mais pour stocker une variable php contenant des données complexes (tableaux, objets) là tu vas avoir besoin de ces fonctions si tu veux retrouver "simplement" ta variable à l'arrivée.
Ces fonctions marchent un peu comme une éponge : quand tu veux ranger une éponge dans un coin, tu la laisses sécher et elle devient petite et stockable (serialize). Il suffit de la mouiller pour qu'elle retrouve sa forme et ses propriétés d'origine, comme elle était au départ (unserialize).
Oui parceque tu le fais en un seul script.Mais si je fais:
$variable = 'allo' ;
echo $variable ;
Je n'ai pas perdu mes donner.
<?php
// début du script
$variable = 'allo' ;
echo $variable ;
// fin du script : après cette ligne la page est terminée, et les variables sont définitivement détruites.
Imaginons que tu aies un deuxième script différent (une deuxième page, en fait) où tu as aussi besoin d'utiliser $variable pour l'afficher.<?php
// début du script
echo $variable ;
// fin du script
Quand tu consultes cette deuxième page, PHP t'enverra une erreur car pour lui, dans cette page, la variable $variable ne contient aucune donnée. <?php // page1.php (stockage)
$variable = 'coucou';
file_put_contents('variable.txt',serialize($variable));
echo $variable.' est maintenant stockée dans variable.txt';
<?php // page2.php (récupération)
$variable = unserialize(file_get_contents('variable.txt'));
echo 'récupération de données depuis le fichier variable.txt : '.$variable;
file_get_contents() lit le contenu d'un fichier, file_put_contents() écrit. Y'a vraiment rien d'autre à expliquer, mais si tu as besoin de + d'infos :Tu pourrais m'envoyer un tutorial qui explique les file_contents?
Je ne comprends pas leur explication.file_get_contents() lit le contenu d'un fichier, file_put_contents() écrit. Y'a vraiment rien d'autre à expliquer, mais si tu as besoin de + d'infos :Tu pourrais m'envoyer un tutorial qui explique les file_contents?
- 1/ Tu cliques sur le nom des fonctions en rouge dans les codes sources de mon dernier commentaire.
- 2/ Par la magie du web, tu te retrouves sur la page de manuel php correspondant au nom de la fonction cliquée, truffée d'exemples et d'explications.
<?php // Stockage dans un fichier
$fichier = 'recette_gateau_citron.txt';
$recette = "Ingrédients : 2 yaourts, un peu de farine, 1 oeuf, du jus de citron
- On mélange tout
- On coule dans un moule à gateau
- On met tout au four pendant 1h.
- On va faire un sudoku";
file_put_contents($fichier, $recette);
<?php // Lecture depuis un fichier
$fichier = 'recette_gateau_citron.txt';
$recette = file_get_contents($fichier);
echo $recette;