2014-02-09 124 views
-2

我的PHP脚本将覆盖我的本地主机上的现有输出。这是我的代码:保存文本输出而不覆盖?

$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); 
} 

如何避免覆盖?

+0

是所有的时间都是一个新的输出,我需要在一个输出中全部覆盖而不会覆盖 –

+0

请不要在找到答案后删除所有帖子的内容。这可以防止他人从你的错误中学习。我已经回滚了你的编辑。 – hichris123

回答

0

看来你用fwrite()函数覆盖你的文件。

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

2

更改此:

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

要这样:

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

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

+0

作品非常感谢:) –

1

您在致电fopen时需要与w不同的模式。

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

此外,你应该总是检查从fopen返回,看看它是否成功。

+0

不错的列表谢谢你的提示:) –