Enregistrer un tableau PHP dans un fichier
Bien que cela puisse paraître à première vue relativement facile, je me suis retrouvé confronté face au problème d'enregistrer un tableau PHP dans un fichier.
La méthode qui consiste à ouvrir le fichier en écriture, faire un fputs() du tableau directement, et fermer le fichier ne marchant évidemment pas.
Je me suis donc retrouvé à rechercher sur Google comment faire. La plupart des sites qui propose une solution propose quelque chose de compliqué... Heureusement je suis tombé sur ce site qui m'a proposé quelque chose de tout simple
La technique consiste tout simplement à sérialiser notre tableau (c'est-à-dire, la mettre sous forme d'une chaîne de caractères) à l'enregistrement, et la désérialiser à la lecture. Tout simplement.
Ainsi on se retrouve avec ce code :
Notez l'utilisation des fonctions urlencode() et urldecode() très importantes ici. Elles permettent de convertir les caractères qui pourraient poser problème à l'enregistrement du fichier (par exemple, les espaces en %20)
La méthode qui consiste à ouvrir le fichier en écriture, faire un fputs() du tableau directement, et fermer le fichier ne marchant évidemment pas.
Je me suis donc retrouvé à rechercher sur Google comment faire. La plupart des sites qui propose une solution propose quelque chose de compliqué... Heureusement je suis tombé sur ce site qui m'a proposé quelque chose de tout simple
La technique consiste tout simplement à sérialiser notre tableau (c'est-à-dire, la mettre sous forme d'une chaîne de caractères) à l'enregistrement, et la désérialiser à la lecture. Tout simplement.
Ainsi on se retrouve avec ce code :
//// ÉCRITURE // Création d'un tableau $tab = array('foo', 'bar', array('foobar')); // Sérialisation du tableau $var = urlencode(serialize($tab)); // Enregistrement de l'information $fp = fopen('monFichier', 'w'); fputs($fp, $var); fclose($fp); //// LECTURE // Chargement du fichier $tab = file('monFichier'); // Désérialisation $var = unserialize(urldecode($tab[0]));
Notez l'utilisation des fonctions urlencode() et urldecode() très importantes ici. Elles permettent de convertir les caractères qui pourraient poser problème à l'enregistrement du fichier (par exemple, les espaces en %20)