从多个php文件更新同一文本文件中的一行

从多个php文件更新同一文本文件中的一行,php,Php,我有两个php文件,first.php和second.php。这两个PHP文件的任务都是将字符串值写入名为“newfile.txt”的文本文件 im面临的问题:使用下面所示的方法,second.php将覆盖first.php在文本文件中编写的任何内容 目标:我想将first.php输出的值写入同一文本文件(即newfile.txt)的第一行,将second.php的值写入第二行。 所以无论First.php输出什么,我都想更新第一行,无论second.php输出什么,我都想在第二行更新它 重要提

我有两个php文件,first.php和second.php。这两个PHP文件的任务都是将字符串值写入名为“newfile.txt”的文本文件

im面临的问题:使用下面所示的方法,second.php将覆盖first.php在文本文件中编写的任何内容

目标:我想将first.php输出的值写入同一文本文件(即newfile.txt)的第一行,将second.php的值写入第二行。 所以无论First.php输出什么,我都想更新第一行,无论second.php输出什么,我都想在第二行更新它

重要提示:我不想创建新行。我想更新线路 first.php

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "LIGHTS TURNED ON";
fwrite($myfile, $txt);
fclose($myfile);
second.php

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "LIGHTS TURNED OFF";
fwrite($myfile, $txt);
fclose($myfile);
如何创建newfile.txt的示例

LIGHTS TURNED ON      //update whatever first.php outputs
LIGHTS TURNED OFF    //update whatever second.php outputs
非常感谢您的阅读。

实现这一点的一种简单(但内存效率低下)方法是,首先将文件逐行读取到数组(),根据行索引进行更新,然后将文件写回
fwrite()


您只需更改文件打开模式:以写入模式打开文件,这意味着文件的所有内容都将被删除,并将文件长度截断为零。尝试将其更改为附加模式:
$myfile=fopen(“newfile.txt”、“a”)或die(“无法打开文件!”)
@AlivetoDie这些方法不用于更新行,它们只是创建一个新行。我想更新第1行和第2行hey@Zeusarm谢谢你的回复,放置append会创建一个我不想要的新行。我要更新现有的Line@AlivetoDie如果你已经结束了这个问题,请撤销它,因为我需要一个答案。第一个$file\u内容应该是$file\u contents\u数组吗?是的,我错了!我已经在这里和链接的Repl.it中更新了代码
$file_contents_array = file("newfile.txt");

$file_contents_array[0] = "THIS IS LINE ONE, BUT CHANGED";
$file_contents_array[1] = "THIS IS LINE TWO, BUT CHANGED";

$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
fwrite($myfile, implode("\n", $file_contents_array));
fclose($myfile);