2015-12-23 1 views
-1

Je dois lire et écrire un tableau de/vers un fichier.PHP écriture tableau retournable au fichier

Le fichier est rempli comme ceci:

<?php 
    return array(
     'Key' => 'value' 
    ); 
?> 

Je suis déjà capable de lire ce fichier en utilisant

$data = include($path . DIRECTORY_SEPARATOR . $file); 

Comment puis-je écrire ce tableau dans le fichier tout en conservant la structure '<?php return array(); ?>'?

+1

Jetez un oeil à: 'file_put_contents()' + 'var_export()' – Rizier123

+0

voudrez peut-être regarder dans xml ... – Naruto

+0

XML pourrait mais je ne l'utilise que pour la lisibilité dans le fichier n'est pas nécessaire. Un tableau dans ce cas a moins d'influence sur les performances, donc XML n'a aucun avantage. Lorsque les fichiers seraient utilisés par des utilisateurs non techniques, j'utiliserais certainement XML. – IMarks

Répondre

2

Vous pouvez utiliser var_export fonction:

file_put_contents(
    $path . DIRECTORY_SEPARATOR . $file, 
    "<?php\nreturn " . var_export($data, true) . "\n?>" 
); 
+0

Merci, cela fera l'affaire. – IMarks

1

meilleure façon de stocker la chaîne json dans le fichier que de nouveau accès à cette chaîne de tableau.

+0

Ne fonctionne pas dans ce cas car le fichier est également importé directement dans une classe à partir d'une bibliothèque. Dans tout autre cas qui serait ofcouse être une option. – IMarks

0

Vous pouvez utiliser serialize() pour stocker un tableau ou un objet dans une chaîne. Ce code montre comment il est fait:

<?php 

$array = ['Key' => 'value']; 

$fh = fopen('array.txt','a+'); 
fwrite($fh, serialize($array)); 
fclose($fh); 

$read_array = unserialize(file_get_contents('array.txt')); 


var_dump($array,$read_array); 
/* 
OUTPUTS 

array(1) { 
    ["Key"]=> 
    string(5) "value" 
} 
array(1) { 
    ["Key"]=> 
    string(5) "value" 
} 
/*