1

我无法弄清楚如何使用 fopen "a" 附加模式写入文件。

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

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

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

所以现在文件应该是这样的:

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

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

所以问题真的是我将如何从 txt 文件中构造可用的 PHP 数组,并像这样逐行列出?

澄清:

我如何使用这样的行拉入一个 txt 文件:

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

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

4

4 回答 4

2

试试这个。

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

<?php
$array = array();

现在它是正确的 php 文件。

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

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

并通过简单地使用它include('myarray.php');

于 2012-04-09T18:58:28.067 回答
0

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

json_encode
json_decode

于 2012-04-09T18:55:24.797 回答
0

未经测试。试试这个:

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

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

于 2012-04-09T18:57:57.530 回答
0

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

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

于 2012-04-09T19:02:49.067 回答