【问题标题】:Write text file php编写文本文件 php
【发布时间】:2014-03-04 15:28:30
【问题描述】:

我正在使用 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";

我该怎么做?

【问题讨论】:

  • 你想要每天都有新文件吗?
  • 你为什么不为此使用数据库?

标签: php


【解决方案1】:

使用 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

【讨论】:

    【解决方案2】:

    如果你想为每天创建新文件,你可以创建当前日期为date('d-m-Y').".txt"的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 中。

    【讨论】:

      【解决方案3】:

      来自fopen docs:

      写:

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

      追加:

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

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

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

      $filename = date("m.d.y"); // 03.10.01
      

      【讨论】:

        【解决方案4】:

        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做的简单例子

        【讨论】:

          【解决方案5】:

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

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

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

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

          【讨论】:

            【解决方案6】:

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

            【讨论】:

            • 为什么要写这个大类来打印文本文件中简单的东西?
            猜你喜欢
            • 1970-01-01
            • 2017-07-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-17
            相关资源
            最近更新 更多