获取HTML数据并将其附加到服务器中的.txt文件中使用PHP
我一直试图从<teaxtarea>
获取数据输入并将其附加到服务器中的.txt文件中,而每次有人输入时都会将其附加到服务器中。服务器端语言目前是PHP。我一直在尝试在线或在教程中寻找可能的解决方案,但最终可能会得到不满意的结果。我非常确定这是一件非常简单的事情,但作为一个新手(前几天刚刚开始PHP),我现在真的迷失了方向。获取HTML数据并将其附加到服务器中的.txt文件中使用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>
你的形式采取行动是错误的。
你可以留空,因为目标的PHP代码是在同一页上,或使用
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
而像戈登说,你必须定义一个文件,例如
$filePath = './file/path.txt';
$file = fopen($filePath, 'a');
frwite($file, $message);
fclose($file);
感谢您的回复,但我的行动似乎正在工作。 –
请参考fopen
和fwrite
的文档。
fopen
将返回一个文件指针,您需要将其传递给fwrite
和fclose
之类的任何函数。传递文件名不起作用。
此外,在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>
作为替代fopen
,fwrite
,fclose
组合,你也可以只使用
file_put_contents("text.txt", $_POST["text"] . PHP_EOL, FILE_APPEND);
非常感谢!我错了。 我已经编辑它到这个 - '$ myfile = fopen(“input.txt”,“a”);'它似乎正在工作并按预期追加数据。 那个打击者只是让我付出了12代表,但没问题,我需要sacrfice前进。 –
“我一直在努力” - 然后告诉我们一个[ MCVE。写作[另一个教程]没有意义(https://duckduckgo.com/?q=php+write+file&t=hf&ia=web) – Quentin
我们希望看到您已经做了哪些工作来提供帮助。 – cometguy
问题已更新。 –