我无法确定如何使用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()????
答案 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
数组转换为数组?
答案 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+
模式下打开文件时,文件指针位于文件的开头。听起来你想把它放在文件末尾减去几个字节,然后写下你的新数据。