8

我正在使用 php。

我想编写一个 php 页面来从另一个页面获取参数并写入文件文本。和:

  • 如果已经有文件文本,则写入新行

  • 每天创建一个文件文本

例子:

注册.php

<body>
    <form action='process.php' method='GET'>
        Name: <input type='text' name='name'/>
        <br/>
        Age: <input type='text' name='age'/>
        <br/>
        <input type='submit' value='SUBMIT'/>
    </form>
</body>

进程.php

$name = $_GET['name'];
$age = $_GET['age'];

$file_handle = fopen("testFile.txt", "w");
$file_contents = "name:" . $name . "age:" . $age;

fwrite($file_handle, $file_contents);
fclose($file_handle);
print "file created and written to";

我怎样才能做到这一点?

4

6 回答 6

6

使用 file_get_contents() 和 file_put_contents() 函数。

例子:

    $file = 'output.txt';
    $buffer = 'my new line here';

    if (file_exists($file)) {
            $buffer = file_get_contents($file) . "\n" . $buffer;
    }

    $success = file_put_contents($file, $buffer);

http://php.net/manual/en/function.file-put-contents.php

http://php.net/manual/en/function.file-get-contents.php

于 2013-01-29T03:49:02.840 回答
6

如果你想为每天创建新文件,你可以创建带有当前日期的 txt 文件date('d-m-Y').".txt"。这样您就可以轻松地按日期识别文件。

试试下面的代码,我对代码做了一些更改并进行了测试。

<?php

$dateFile = date('d-m-Y').".txt";

$dataString = "name:" . $name . "age:" . $age."\n";
$fWrite = fopen($dateFile,"a");
$wrote = fwrite($fWrite, $dataString);
fclose($fWrite);
print "file created and written to";

?>

如果文件已经创建,以便您可以将新记录存储在新行中"\n",\n 必须在 "" quatoed 中。

于 2013-01-29T04:22:13.923 回答
2

来自fopen 文档

写:

w 仅供写作;将文件指针放在文件的开头并将文件截断为零长度。如果该文件不存在,请尝试创建它。

附加:

a 只供写作;将文件指针放在文件末尾。如果该文件不存在,请尝试创建它。

所以你想追加,而不是写。

如果文件不存在,它将尝试创建它。因此,只需为文件指定一个随时间变化的唯一名称。有关示例,请参见日期文档。

$filename = date("m.d.y"); // 03.10.01
于 2013-01-29T03:38:55.267 回答
2

file_write_php

   <?php
     $File = "YourFile.txt"; 
     $Handle = fopen($File, 'w');
     $Data = "Jane Doe\n".PHP_EOL;; 
     fwrite($Handle, $Data); 
     $Data = "Bilbo Jones\n"; 
     fwrite($Handle, $Data); 
     print "Data Written"; 
     fclose($Handle); 
   ?>

以上是在 php 中执行此操作的简单示例

于 2014-03-04T07:20:42.377 回答
0

我没有写很多 php,但是如果你在 fopen() 中将“w”替换为“w+”,它会打开文件并在文件已经存在时将指针放在文件末尾,从而使任何 fwrite( ) 调用追加到文件。

$file_handle = fopen("testFile.txt", "w+");

http://php.net/manual/en/function.fopen.php

编辑:看到 sachleen 的回答,是的,您可以将日期(截止日期)与文件名结合起来。这样在新的一天将为该天创建一个新文件,如果该文件在该天存在,它将被附加到。

于 2013-01-29T03:39:38.343 回答
-2

谢谢。我用这个http://www.redips.net/php/write-to-log-file/解决了这个问题

于 2013-01-29T04:39:09.340 回答