用PHP在txt文件上写一个新行?

时间:2014-03-04 02:12:26

标签: php html

我想用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
    =============================== 

任何人都可以帮我修复它吗? 我非常感谢您的回答。

由于

1 个答案:

答案 0 :(得分:14)

追加模式打开文件:

$fp = fopen("formdata.txt", "a") or exit("Unable to open file!");

或者将file_put_contentsFILE_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);