2017-03-17 91 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

相關問題