2017-03-17 85 views
-3

我一直在为这个bug烦恼,我试图解决它,但这对我来说是一场艰苦的斗争。所以我有一个php文件写入.txt文件,但是当我输入不同的信息时,它会替换文件中已有的信息,但我不希望它这样做。我希望它继续。帮帮我?为什么它会删除文件的内容?

<?php 
$filenum = echo rand(); 
$info = $_GET["info"]; //You have to get the form data 
$file = fopen('$filenum.txt', 'w+'); //Open your .txt file 
$content = $info. PHP_EOL .$gain. PHP_EOL .$offset; 
fwrite($file , $content); //Now lets write it in there 
fclose($file); //Finally close our .txt 
die(header("Location: ".$_SERVER["HTTP_REFERER"])); 

?>

+0

我看到有人低估了。那应该是甚至可以帮助我吗?你的目的是什么? –

+0

他们从来不说为什么。也许是因为他们认为你方面的一小撮研究可以解决问题。你所要做的就是阅读'fopen()'函数的文档来查看它。 – Barmar

+0

几乎每一行都是错误的 - 所以你真的想从基础开始(不是我的downvote) – nogad

回答

1

,该文档清楚地说:

Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.

如果要追加,你应该使用aa+

顺便说一句,我不确定你为什么使用w+而不是w,因为你永远不会读取文件。

另外,还可以使用file_put_contents()

$filenum = rand(); 
$info = $_GET['info']; 
$content = $info . PHP_EOL . $gain . PHP_EOL . $offset . PHP_EOL; 
file_put_contents("$filenum.txt", $content, FILE_APPEND); 
die(header("Location: " . $_SERVER['HTTP_REFERER'])); 

做这一切在一个声明中,并注意你应该在$content到底有PHP_EOL。否则,每次添加到文件中时,它都将从您之前添加的最后一行开始。

+0

你修正了文件名错误 – nogad

+0

是'die(header(“Location:”。$ _ SERVER [“HTTP_REFERER”]));'valid? – nogad

+0

这工作。谢谢! –

1

我不知道解决的办法,但我会建议你看到您正在打开的文件格式,我想应该是“A +”或者类似的东西,这将打开文件用于附加而不是'w +'。我没有使用PHP的很多,但我认为这是你正在使用w+模式的情况下

+0

是的,我明白了。谢谢您的帮助! –

+0

@WavyFX如果它对你有帮助,你应该接受它。 – Michael

相关问题