Vous êtes ici Codes PHP et MySQL > Fonctions > Stocker et récuperer un tableau (variable) dans un...

 

Stocker et récuperer un tableau (variable) dans un fichier

Cette fonction enregistre ou récupere une variable sous forme de tableau, en conservant le type de tous les éléments, dans un fichier.

Tous les types sont acceptés, sauf : object, ressource et unknown type.

Accepte les tableaux à plusieurs niveau (Récursivité)


Mots clefs: tableau dans fichier - array to file - enregistrer un tableau dans un fichier - stocker un tableau
 
feneste
Code vu 2381 fois
Enregistré le 18 Mai 2010
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Stocker et récuperer un tableau (variable) dans un fichier
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
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.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Stocker et récuperer un tableau (variable) dans un...     */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts588-PHP.htm              */
/* Auteur         : feneste                                                   */
/* Date édition   : 18 Mai 2010                                               */
/*                                                                            */
/******************************************************************************/


function tabtostring($tab)
{
    if (!is_array($tab)) return false;
    $string "array";
    foreach($tab as $key => $content)
    {
        if(is_array($tab[$key]) && gettype($key)!="object" && gettype($key)!=
"resource" && gettype($key)!= "unknown")
        {
            $string.="\n".gettype($key)."\n".base64_encode($key)."\n".
tabtostring($content);    // Récursivité
        }
        else
        {
            if(gettype($key)!="object" && gettype($key)!="resource" && gettype(
$key)!= "unknown" && gettype($content)!="object" && gettype($content)!=
"resource" && gettype($content)!= "unknown")
            {
                $string.="\n".gettype($key)."\n".base64_encode($key)."\n".
gettype($content)."\n".base64_encode($content);
            }
        }    
    }
    $string.="\nendarray";
    return $string;
}

function stringtabtotab($stringtab$begin)
{
    if (!is_array($stringtab)) return false;
    $i=$begin;
    while($i<(count($stringtab)-1))
    {
        if(@$stringtab[$i+2]=="array")
        {
            $cle base64_decode($stringtab[$i+1]);
            settype($cle$stringtab[$i]);
            $tab[$cle]=stringtabtotab($stringtab$i+3);
            while($stringtab[$i]!="endarray"){ $i++; }
            $i++;
        }
        elseif($stringtab[$i]=="endarray")
        {
            return $tab;
        }
        else
        {
            $cle base64_decode($stringtab[$i+1]);
            $valeur base64_decode($stringtab[$i+3]);
            settype($cle$stringtab[$i]);
            settype($valeur$stringtab[$i+2]);
            $tab[$cle]=$valeur;
            $i+=4;
        }
    }
    return $tab;
}

function tabtofile($tab$filename)
{
    $donnees tabtostring($tab);
    if(($fp=fopen($filename'w')) && $donnees)
    {
        fwrite($fp$donnees);
        fclose($fp);
        return true;
    }
    else
    {
        return false;
    }
}

function filetotab($filename)
{
    if(!file_exists($filename)) return false;
    $donnees file($filename);
    foreach($donnees as &$content$content=trim($content);
    return stringtabtotab($donnees1);    
}


/*
    Exemple d'Utilisation 
                                */

// Création d'un tableau au d'exemple
$array[0]=1234;
$array[1]=45.5154545467;
$array[2][0]="abc";
$array[2][1]="test";
$array[2][2][1]=true;
$array[3]=123;

// Enregistre le tableau $array dans le fichier fichier.txt
tabtofile($array"fichier.txt");

// Récupere le tableau dans le fichier
$tableau filetotab("fichier.txt");

// Affichage du résultat
echo '<pre>';
print_r($tableau);
echo '</pre>';

// On regarde si les types sont bien conservés
echo "type de [2][2][1] : ".gettype($tableau[2][2][1]);

?>

 

Fonctions du code

: Détermine si une variable est un tableau - (PHP 4, PHP 5)
: Retourne le type de la variable - (PHP 4, PHP 5)
: Encode une chaîne en MIME base64 - (PHP 4, PHP 5)
: Compte le nombre d'éléments d'un tableau ou le nombre de propriétés...
: Décode une chaîne en MIME base64 - (PHP 4, PHP 5)
: Affecte un type à une variable - (PHP 4, PHP 5)
: Ouvre un fichier ou une URL - (PHP 4, PHP 5)
: Écrit un fichier en mode binaire - (PHP 4, PHP 5)
: Ferme un fichier - (PHP 4, PHP 5)
: Vérifie si un fichier ou un dossier existe - (PHP 4, PHP 5)
: Lit le fichier et renvoie le résultat dans un tableau - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Affiche une chaîne de caractères - (PHP 4, PHP 5)
: Affiche des informations lisibles pour une variable - (PHP 4, PHP 5)
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Fonctions

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité