使用附加的fopen创建PHP数组

时间:2012-04-09 18:52:38

标签: php arrays fopen fputs

我无法确定如何使用fopen“a”追加模式写入文件。

文件本身是一个简单的PHP数组:

$array = array(
  "entry1"   => "blah blah",
  "entry2"   => "forbarbaz",
);   

够简单。所以使用fopen并将第二个arg设置为“a”应该允许我使用fputs附加文件....问题是开始和结束行,即$array = array();

所以现在文件看起来像这样:

  "entry1"   => "blah blah",
  "entry2"   => "forbarbaz",

我如何将这些数据重建为一个有效的PHP数组,假设它只是一个带有没有开始和结束行的条目列表的txt文件?对不起,如果不清楚,有点复杂。不,我不会将这些值存储在数据库中,我需要通过将这些特定值保存在文件数组中来获得速度优势。

所以问题实际上是我如何从这样的逐行列表的txt文件构建可用的PHP数组?

澄清:

如何用这样的行拉入txt文件:

  "entry1"   => "blah blah",
  "entry2"   => "forbarbaz",

并且有一个可行的$ php_array()????

4 个答案:

答案 0 :(得分:1)

试试这个。

文件格式(在开始使用时):

<?php
$array = array();

现在它是正确的php文件。

然后只需添加如下所示的新行:

$f = fopen('myarray.php', 'a');
fputs($f, PHP_EOL.'$array["entry1"] = "value1";');
fclose($f);

只需include('myarray.php');

即可使用它

答案 1 :(得分:0)

为什么在将数据存储到文件中时json_encode数组,然后在从文件中提取JSON时将json_decode数组转换为数组?

json_encode
json_decode

答案 2 :(得分:0)

未测试。试试这个:

$data = file_get_contents('./data.txt', true);
$array = eval("array(".$data.")");

仅供参考,shiplu.mokadd.im的解决方案是最简单的。

答案 3 :(得分:0)

也许您正在寻找fseek功能:http://se.php.net/fseek

r+模式下打开文件时,文件指针位于文件的开头。听起来你想把它放在文件末尾减去几个字节,然后写下你的新数据。