简体   繁体   中英

Save array to PHP file

I have a PHP file to store an array:

<?php
  $arr = array (
    "A" => "one",
    "B" => "two",
    "C" => "three"
  );
?>

I am using require to open the file, and each entry loads into a form. ( foreach loop) I would like to save the $_POST variables back (overwriting) to the original file in the same format . I have no trouble making the form and sending back the variables. I just need a way to print the array back into the original file.

Example result:

<?php
  $arr = array (
    "A" => "new value",
    "B" => "other new value",
    "C" => "third new value"
  );
?>

I have been unable to use print_r , as the format returned is incorrect. How can I do this successfully? Thank you.

The function you're looking for is var_export

You would use it like this

file_put_contents($filename, '<?php $arr = ' . var_export($arr, true) . ';');

DEMO

You probably don't want to be re-writing your php code on the fly.

Two alternatives:

  1. Use a database

  2. Serialize the array, then (over)write to file. When reading the file, you will just want to unserialize the value.

  3. Use json_encode and json_decode as discussed in #2

There's actually several ways to achieve that.

  1. Open your file and write into it with file_put_contents() ( http://php.net/manual/fr/function.file-put-contents.php )
  2. write to the file your array encoded to string with JSON.encode ( http://www.php.net/manual/fr/function.json-encode.php )
  3. read your file with file_get_contents (file_get_contents)
  4. convert your string to an array with JSON.decode ( http://www.php.net/manual/fr/function.json-decode.php )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM