69 votes

php: comment stocker un tableau dans un fichier pour y accéder ultérieurement en tant que tableau avec php?

Je veux juste stocker rapidement un tableau que je reçois d'une API distante, afin que je puisse déconner avec cela sur un hôte local.

Alors:

  1. j'ai actuellement un tableau
  2. Je veux que les gens utilisent le tableau sans avoir à l'obtenir de l'API

Il n’existe aucun besoin d’efficacité, etc. ici, il ne s’agit pas d’un site réel uniquement pour obtenir des méthodes de nettoyage / formatage, etc.

Existe-t-il une fonction comme store_array () restore_arrray ()?!

103voto

retro Points 1958

Le meilleur moyen pour ce faire est la sérialisation JSON. Il est lisible par l'homme et vous obtiendrez de meilleures performances (fichier est plus petit et plus rapide à charger/enregistrer). Le code est très simple. Juste deux fonctions

Exemple de code:

$arr1 = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
file_put_contents("array.json",json_encode($arr1));
# array.json => {"a":1,"b":2,"c":3,"d":4,"e":5}
$arr2 = json_decode(file_get_contents('array.json'), true);
$arr1 === $arr2 # => true

Vous pouvez écrire votre propre store_array et restore_array fonctions facilement avec cet exemple.

42voto

soulmerge Points 37314

Si vous n'avez pas besoin que le fichier de vidage soit lisible par l'homme, vous pouvez simplement serialize() le tableau.

stocker:

 file_put_contents('yourfile.bin', serialize($array));
 

récupérer:

 $array = unserialize(file_get_contents('yourfile.bin'));
 

24voto

K. Norbert Points 4797

var_export() fait exactement ce que vous voulez, il va prendre toute sorte de variable, et de le stocker dans une représentation que l'analyseur PHP peut lire. Vous pouvez les combiner avec file_put_contents pour le stocker sur le disque, et l'utilisation d'inclure, ou eval pour le lire.

// storing
$file = '/tmp/out.php';
file_put_contents($file, var_export($var, true));

//retrieving
$var = include($file);

8voto

Tor Valamo Points 14209

Vous pouvez utiliser serialize pour en faire une chaîne de caractères à écrire ce fichier, et l'accompagnement unserialize pour revenir à une structure de tableau.

Je suggérerais à l'aide d'un langage indépendant de la structure bien que, comme JSON. Cela vous permettra de charger les fichiers à l'aide de différents langages PHP, dans le cas où il y a une chance plus tard. json_encode de la stocker et la fonction json_decode($str, true) de la retourner.

1voto

elias Points 906

Utilisez le serialze de php:

 file_put_contents("myFile",serialize($myArray));
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X