21

我有一个 PHP 文件来存储一个数组:

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

require用来打开文件,每个条目都加载到一个表单中。(foreach循环)我想以相同的格式$_POST将变量保存回(覆盖)到原始文件中。我可以毫不费力地制作表格并发回变量。我只需要一种将数组打印回原始文件的方法。

示例结果:

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

我一直无法使用print_r,因为返回的格式不正确。我怎样才能成功地做到这一点?谢谢你。

4

3 回答 3

62

您正在寻找的功能是var_export

你会像这样使用它

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

演示

于 2013-08-20T18:40:05.573 回答
7

您可能不想即时重写您的 php 代码。

两种选择:

  1. 使用数据库

  2. 序列化数组,然后(覆盖)写入文件。读取文件时,您只想反序列化该值。

  3. 使用#2 中讨论的json_encodejson_decode

于 2013-08-20T18:34:42.967 回答
3

实际上有几种方法可以实现这一目标。

  1. 打开您的文件并使用 file_put_contents() ( http://php.net/manual/fr/function.file-put-contents.php )写入其中
  2. 使用 JSON.encode ( http://www.php.net/manual/fr/function.json-encode.php )将您的数组编码为字符串写入文件
  3. 使用 file_get_contents (file_get_contents) 读取您的文件
  4. 使用 JSON.decode ( http://www.php.net/manual/fr/function.json-decode.php )将您的字符串转换为数组
于 2013-08-20T18:40:32.290 回答