我已经阅读了很多问题,其中没有一个有效。我有一个txt文件。第一行包含由选项卡“\ n”分隔的标题。现在,当我发布到这个文件时,我希望它获取值并通过选项卡将它们分开,然后将它们写在txt文件的新行上。但是当我运行它时,它只会覆盖第一行。
<?php
$post = $_POST;
$myFile = 'test.txt';
$fh = fopen($myFile, 'w');
$columns = "";
foreach ($post as $key => $value){
$columns .= $value . "\t";
}
fwrite($fh, $columns . PHP_EOL);
fclose($fh);
?>
答案 0 :(得分:1)
您正在寻找a
而不是w
:
$fh = fopen($myFile, 'a');
来自the docs:
'w'仅供写作; 将文件指针放在开头 该文件并将文件截断为零长度。如果文件没有 存在,试图创造它。
'a'仅供写作; 将文件指针放在。的末尾 文件。如果该文件不存在,请尝试创建它。
答案 1 :(得分:0)
如果您不想覆盖内容,请尝试$fh = fopen($myFile, 'a');
。
使用w
覆盖,a
或a+
追加。
有关fwrite()
功能的更多信息,请参阅PHP手册。
另请参阅fopen()
http://php.net/manual/en/function.fopen.php
'a'
仅限写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。
'a+'
开放阅读和写作;将文件指针放在文件的末尾。如果该文件不存在,请尝试创建它。
答案 2 :(得分:0)
w
用于写入,这意味着任何事情都会被覆盖。
更改以下行:
$fh = fopen($myFile, 'w'); //w = write
要
$fh = fopen($myFile, 'a'); //a = append
它应该为你解决问题。