如何覆盖平面文件中的特定行?

时间:2012-10-30 12:00:16

标签: php text

我的文字文件包含:

a
b
c
d
e

我无法弄清楚如何修改我的代码,以便我可以用输入框'数据'中输入的任何内容覆盖第3行(即替换“c”)。我的代码如下,目前输入框'data'的内容完全替换了我的文件:

$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]);

有人可以建议我需要使用的代码来实现这个目标吗?

1 个答案:

答案 0 :(得分:3)

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

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

顺便说一句,你的阅读代码并非“仅”读取第3行 - 它按文件()读取所有行,然后你只使用第3行。