保存文本输出而不覆盖?

时间:2014-02-09 03:21:22

标签: php

我的PHP脚本将覆盖localhost上的现有输出。这是我的代码:

$txt = "data.txt"; 
$fh = fopen($txt, 'w'); 
if (isset($_POST['idnumber']) && isset($_POST['idnumber'])) {
    $txt = $_POST['idnumber']; 
    file_put_contents('data.txt',$txt."\n",FILE_APPEND);
}
fwrite($fh,$txt);
fclose($fh);
}  

如何防止覆盖?

3 个答案:

答案 0 :(得分:2)

改变这个:

$fh = fopen($txt, 'w'); 

对此:

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

将附加数据与写入数据(添加与覆盖)。

答案 1 :(得分:1)

w的通话中,您需要的模式与fopen不同。

有关您的所有选项,请参阅http://www.php.net/manual/en/function.fopen.php

此外,您应该始终检查fopen的回复,看看是否成功。

答案 2 :(得分:0)

您似乎正在使用fwrite()函数覆盖文件。

如果使用file_put_contents()函数,则无需使用fopen(),fwrite()和fclose()函数。