用php修改文本文件

Jac*_*ack 2 php

我有两个网页a.php和b.php.texbox中提交的值将写入文本文件.

a.php:

 <html>

<?php

if (isset($_POST['Submit1'])) {

 $aa = $_POST['alpha'];

 $f = fopen("text.txt", "w");

 fwrite($f,$aa."\n");

 }
 else

 {
 $f= fopen("text.txt",'r');

  while ((!feof($f)) && ($found == 0)) {

  list($aa)=fscanf($f,"%f[^\n]");

   }

   }

  fclose($f);

   ?>
   <form action="a.php" name="Calculation" method="post">

   Alphabet: <INPUT TYPE ="TEXT" id="alph" Name "alpha"          VALUE="<?PHP print $aa; ?>">

   <Input Type = "Submit" Name = "Submit1" Value ="Save Parameters">

    </form>

    </html>
Run Code Online (Sandbox Code Playgroud)

和b.php是:

<!DOCTYPE html>
<html>

<?php

if (isset($_POST['Submit1'])) {

$bb = $_POST['beta'];

 file_put_contents("text.txt", $bb."\n" , FILE_APPEND);

 }

 else

 {

 $f= fopen("text.txt",'r');

 while ((!feof($f)) && ($found == 0)) {

 list($aa)=fscanf($f,"%f[^\n]");
  list($bb)=fscanf($f,"%f");
 }
 }

 fclose($f);

  ?>
 <form action="b.php" name="Calculation" method="post">

 Alphabet: <INPUT TYPE ="TEXT" id="betaa" Name ="beta" size="5"     VALUE="<?PHP print $bb; ?>">

 <Input Type = "Submit" Name = "Submit1" Value ="Save Parameters">

  </form>

  </html>
Run Code Online (Sandbox Code Playgroud)

代码工作正常,如果我输入a.php文本框中的第一个值和b.php文本框中的第二个值,文本框中的值将写入文本文件.例如,如果我在a.php和bb的文本框中将aa放在b.php的文本框中,我会得到

aa bb

在我的文本文件中.但是,如果我回到我的a.php文件并在其文本框中添加一个新值,我将松开bb.有没有办法只更改文本框第一行的值并将bb保留在文本框的第二行?.问题是如果我添加一个新值,我将丢失我的b.php脚本的值.我不想添加文本文件中的行数.我想知道是否有办法用cc重写aa例如.

Fun*_*ner 6

您正在a.php使用w开关覆盖您的文件.

使用a开关追加.

$f = fopen("text.txt", "a");
Run Code Online (Sandbox Code Playgroud)

查阅手册:

或者,像在其他文件(b.php)中一样使用 file_put_contents()

file_put_contents("text.txt", $bb."\n" , FILE_APPEND);
                                         ^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

它做了同样的事情.


编辑:

"我有一个网页,其中有几个文本框需要填写,当点击提交按钮时,值会保存在文本文件中.然后还有另一个网页,其中有几个文本框需要填写,必须将值添加到同一文本文件中.

因此,如果按下提交按钮后的用户决定更改a.php中一个文本框的值,然后再次点击提交,我将丢失bb.php中的所有信息,除非我使用新信息向我的文本文件中添加更多行".

另一种方法是使用两个单独的和不同的文件名,同时保留现有的内容.

这是一个示例,并连接文件:

<?php 
$file1 = file_get_contents('file1.txt');
$file2 = file_get_contents('file2.txt');

$show_all = $file1 . $file2;

echo $show_all;
Run Code Online (Sandbox Code Playgroud)
  • file_get_contents()在这个例子中使用过,因为我不知道你现在如何在你的网页上显示内容.

边注:

如果要在两者之间添加换行符,请使用<br>.

$show_all = $file1 . "<br>" . $file2;
Run Code Online (Sandbox Code Playgroud)

或者只是一个简单的空间:

$show_all = $file1 . " " . $file2;
Run Code Online (Sandbox Code Playgroud)