1

我的文本文件包含:

a
b
c
d
e

我不知道如何修改我的代码,以便我可以只用我在输入框“数据”中键入的任何内容覆盖第 3 行(即替换“c”)。我的代码如下,目前输入框“数据”的内容完全替换了我的文件:

$data = $_POST['data'];
$file = "data.txt"; 

$fp = fopen($file, "w") or die("Couldn't open $file for writing");

fwrite($fp, $data) or die("Couldn't write values to file"); 
fclose($fp);

我让它反过来工作,即下面的代码仅在页面首次加载时将第 3 行读入文本框中:

$file = "data.txt";
$lines = file( $file ); 
echo stripslashes($lines[2]);

任何人都可以建议我需要用来实现这一目标的代码吗?

4

1 回答 1

4

唯一的方法是读取整个文件,更改第 3 行,然后将其全部写回。基本上,像这样:

$lines = file($file);
$lines[2] = $_POST['data'];
file_put_contents($file, implode("\n", $lines));

顺便说一句,您的阅读代码不会“仅”读取第 3 行 - 它按照 file() 读取所有行,然后您只使用第 3 行。

于 2012-10-30T12:08:36.100 回答