【问题标题】:How do I save form data in HTML to a txt file.如何将 HTML 格式的表单数据保存到 txt 文件中。
【发布时间】:2015-07-01 09:37:06
【问题描述】:

我的程序使用 PHP 从名为“configurationSettings.txt”的 txt 文件中打开配置设置列表,并将其中的数据放入表单中。

我想弄清楚的是,如果用户通过表单更改任何内容,如何让我的程序更新原始 txt 文件中的数据。

这里是一个txt文件数据的例子:

Channel 7
4.0000
6.0000

这是我读取数据并填写表单的代码:

<?php
$configFile = fopen("configurationSettings.txt", "r");
$title1 = fgets($configFile);
$gain1 = fgets($configFile);
$offset1 = fgets($configFile);
fclose($configFile);
?> 

<form action="program.php" method="post">
Channel 8 Title:<br>
<input type="text" name="channel0Title" value="<?php echo $title1 ?>">
<br>
Gain:<br>
<input type="text" name="channel0Gain" value="<?php echo $gain1 ?>">
<br>
Offset:<br>
<input type="text" name="Channel0Offset" value= "<?php echo $offset1 ?>">
<br>
<input type="submit" id ="submitButton" value="Submit">
</div>
</form>

这是它的外观图片:

按提交按钮如何更新原始txt文件?

【问题讨论】:

标签: php html


【解决方案1】:

经过测试,100% 有效。您不必创建 .txt。如果不存在则自动创建。

index.html

<form action="program.php" method="post">
    Channel 8 Title:<br><input type="text" name="channel0Title" value="Channel 7"><br>
    Gain:<br><input type="text" name="channel0Gain" value="4.000"><br>
    Offset:<br><input type="text" name="channel0Offset" value= "6.000"><br>
    <input type="submit" id ="submitButton" value="Submit">
</form>

程序.php

<?php
    $title = $_POST["channel0Title"]; //You have to get the form data
    $gain = $_POST["channel0Gain"];
    $offset = $_POST["channel0Offset"];
    $file = fopen('configurationSettings.txt', 'w+'); //Open your .txt file
    ftruncate($file, 0); //Clear the file to 0bit
    $content = $title. PHP_EOL .$gain. PHP_EOL .$offset;
    fwrite($file , $content); //Now lets write it in there
    fclose($file ); //Finally close our .txt
    die(header("Location: ".$_SERVER["HTTP_REFERER"]));
?>

【讨论】:

  • 谢谢!出于某种原因,当我使用你的第 4 行并将文件设置为 configurationSettings.txt 打开时,它什么也没做。
  • 我将其更改为 test.txt 并且它有效,但我需要它来重写原始 configurationSettings.txt 文件。知道问题是什么吗?
  • 编辑了我的答案。您必须使用其他开放参数才能读取和写入。检查这个:us2.php.net/manual/en/…
  • 这太奇怪了。即使您的编辑。如果我使用 configurationSettings.txt,它仍然无法工作。它不会对文件进行任何更改。如果我将它标记为其他任何东西,它会创建它并正常工作。我不确定出了什么问题
【解决方案2】:
if(isset($_POST['field1']) && isset($_POST['field2'])) {
$data = $_POST['field1'] . '-' . $_POST['field2'] . "\n";
$ret = file_put_contents('/tmp/mydata.txt', $data, FILE_APPEND | LOCK_EX);
if($ret === false) {
    die("There was an error writing this file");
}
else {
    echo "$ret bytes written to file";
}}

【讨论】:

  • 虽然答案总是很受欢迎,但这个问题是在 2 年前 年前提出的,并且已经有了一个公认的解决方案。请尽量避免通过提供答案来将问题“颠倒”到顶部,除非该问题尚未标记为已解决,或者您找到了针对该问题的新的和改进的解决方案。还记得提供一些context surrounding your code 来帮助解释它。查看writing great answers 上的文档,了解如何让您的答案发挥作用的一些提示:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多