我有两个网页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例如.
您正在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)
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |