使用带append的fopen创建PHP数组

cmssoen2  于 2022-11-21  发布在  PHP
关注(0)|答案(4)|浏览(153)

我很难弄清楚如何使用fopen“a”附加模式写入文件。
文件本身是一个简单PHP数组:

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

非常简单。所以使用fopen并将第二个参数设置为“a”应该允许我使用fputs追加文件....问题是开始行和结束行,即$array = array();
所以现在文件应该如下所示:

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

我如何将这些数据重建到一个工作的PHP数组中,假设它只是一个txt文件,包含一个没有开始行和结束行的条目列表?抱歉,如果这还不清楚,这有点复杂。不,我不打算将这些值存储在DB中,我需要通过将这些特定的值保存在文件数组中来提高速度。
所以真正的问题是我如何从一个txt文件中构造可用的PHP数组,这个文件有一个像这样的逐行列表?
澄清:
我如何在一个txt文件中拉入这样的行:

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

并且有一个可用的$php_array()

isr3a4wc

isr3a4wc1#

试试这个
文件格式(开始使用时):

<?php
$array = array();

现在它是正确的php文件。
然后简单地添加新行,如下所示:

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

只需include('myarray.php');即可使用

nbysray5

nbysray52#

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

jtw3ybtb

jtw3ybtb3#

也许您正在寻找fseek函数:http://se.php.net/fseek
当在r+模式下打开文件时,文件指针位于文件的开头,听起来像是你想把它放在文件的末尾减去几个字节,然后写入新数据。

rbl8hiat

rbl8hiat4#

未经测试。试试这个:

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

相关问题