【问题标题】:Get HTML data and append to a .txt file in server with PHP使用 PHP 获取 HTML 数据并附加到服务器中的 .txt 文件
【发布时间】:2017-10-19 08:43:15
【问题描述】:

我一直在尝试从<teaxtarea> 获取数据输入,并在每次有人输入时将其附加到服务器的 .txt 文件中。服务器端语言目前是 PHP。我一直在在线或在教程中尝试可能的解决方案,但最终可能会得到不满意的结果。我很确定这是一件非常简单的事情,但是作为一个新手(几天前刚开始使用 PHP),我现在真的迷路了。

我们将不胜感激。

我尝试了很多方法,现在有点迷茫。这是我尝试过但失败的事情。 -

<?php
  
  $myfile = "input.txt";
  $txt = $_POST["text"];
  fopen($myfile, "a");
  fwrite($myfile, $txt);
  fclose($myfile);

  ?>
  <!DOCTYPE html>
<html>
    <head></head>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
      <textarea name="text"></textarea>
         <input type="submit"></input>
      </form>
   
   </body>
   </html>

【问题讨论】:

  • “我一直在尝试”——然后给我们看minimal reproducible example。写another tutorial没有意义
  • 我们想看看你做了什么来提供帮助。
  • 问题已更新。
  • 究竟是什么不工作?
  • 文件被创建,但没有数据被追加/写入 .txt 文件。

标签: php html server frontend backend


【解决方案1】:

请参阅fopenfwrite 的文档。

fopen 将返回一个文件指针,您需要将其传递给fwritefclose 等任何函数。传递文件名将不起作用。

另外,在 fopen 中使用“a”需要文件存在。如果需要,将其更改为“a+”以创建它,并确保脚本有权这样做。

最后,如果您希望新的表单提交在新行上进行,您需要自己添加新行,因为“a”会将文件指针仅放在文件末尾。它不会为您添加换行符。

这应该可行:

<?php

if (isset($_POST["text"])) {
  $txt = $_POST["text"];
  $fp = fopen("text.txt", "a+");
  fwrite($fp, $txt . PHP_EOL);
  fclose($fp);
}

?>
<!DOCTYPE html>
<html>
   <body>
      <form method = "POST">
          <textarea name="text"></textarea>
          <input type="submit"></input>
      </form>
   </body>
</html>

作为fopenfwritefclose 组合的替代品,您也可以只使用

file_put_contents("text.txt", $_POST["text"] . PHP_EOL, FILE_APPEND);

【讨论】:

  • 非常感谢!我弄错了。我已将其编辑为此 - $myfile = fopen("input.txt", "a");,它似乎正在按预期工作并附加数据。那个 alnighter 只花了我 12 个代表,但好吧,我猜需要牺牲才能继续前进。
  • 此代码不起作用,请尝试发布完整示例或编辑当前示例!!!
【解决方案2】:

您的表单操作错误。

您可以将其留空,因为目标 php 代码在同一页面上,或者使用

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

就像 Gordon 说的,你必须定义一个文件,例如

$filePath = './file/path.txt';
$file = fopen($filePath, 'a');
frwite($file, $message);
fclose($file);

【讨论】:

  • 感谢您的回复,但我的行动似乎奏效了。
猜你喜欢
  • 2020-10-28
  • 2019-06-24
  • 1970-01-01
  • 2020-09-11
  • 2015-09-10
  • 2020-11-10
  • 2021-06-22
  • 2013-05-10
  • 1970-01-01
相关资源
最近更新 更多