0

I have read a lot of questions, none of which worked. I have a txt file. The first line contains headers separated by a tab "\n". Now when i post to this file I want it to take the values and separate them by a tab and then write them on a new line of the txt file. But when I run it, it just overwrites the first line.

<?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);
?>
4

3 回答 3

1

您正在寻找的aw

$fh = fopen($myFile, 'a');

文档

'w' 只为书写而打开;将文件指针放在文件的开头并将文件截断为零长度。如果该文件不存在,请尝试创建它。

'a' 只供书写;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

于 2013-09-06T19:54:41.960 回答
0

$fh = fopen($myFile, 'a');如果您不想覆盖内容,请尝试。

使用w覆盖、whileaa+append。

有关该fwrite()函数的更多信息,您可以查阅 PHP 手册。

另请参阅http://php.net/manual/en/function.fopen.php上的 PHP 手册fopen()

'a'仅供写作;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

'a+' 开放阅读和写作;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

于 2013-09-06T19:55:32.737 回答
0

w用于写入,这意味着在被覆盖之前的任何内容。

更改以下行:

$fh = fopen($myFile, 'w'); //w = write

$fh = fopen($myFile, 'a'); //a = append

它应该为您解决问题。

于 2013-09-06T20:12:19.680 回答