我想用PHP创建txt文件,可以在Form上输入后保存数据。
到目前为止,我一直在尝试这个脚本
<?php
if(isset($_POST[S1]))
{
$name = $_POST[name];
$email = $_POST[email];
$fp = fopen("formdata.txt", "w") or exit("Unable to open file!");
$savestring = $name . "," . $email . "\n";
fwrite($fp, $savestring);
fclose($fp);
echo "<h1>You data has been saved in a text file!</h1>";
?>
<form name="web_form" id="web_form" method="post" action="coba.php">
Enter name: </label><input type="text" name="name" id="name" />
Enter email: </label><input type="text" name="email" id="email" />
<input type="submit" name="S1" id="s1″ value="Submit" />
</form>
工作正常,可以在输入表单后写入文件,但如果我执行第二次输入,则txt文件将更改为最后一个输入。
如何在第二次输入时,最后一次输入在txt文件上写一个新行?
可能是解释不清楚这个例子
===============================
First Input:
Result Txt File:
Adam, Adam@email.com
===============================
Second Input:
Result Txt File:
Adam, Adam@email.com
Eve, Eve@gmail.com
===============================
任何人都可以帮我修复它吗? 我非常感谢您的回答。
由于
答案 0 :(得分:14)
以追加模式打开文件:
$fp = fopen("formdata.txt", "a") or exit("Unable to open file!");
或者将file_put_contents
与FILE_APPEND
标志一起使用:
file_put_contents("formdata.txt", $name . "," . $email . "\n", FILE_APPEND);
注意:强>
如果您在Windows环境下运行此操作,则需要使用\r\n
。
即:
file_put_contents("formdata.txt", $name . "," . $email . "\r\n", FILE_APPEND);
仅在UNIX / Linux平台下\n
就足够了,但对于Windows则不行。
您还可以使用跨平台PHP_EOL
pre-defined constant。
file_put_contents("formdata.txt", $name . "," . $email . PHP_EOL, FILE_APPEND);