我的文字文件包含:
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]);
有人可以建议我需要使用的代码来实现这个目标吗?
答案 0 :(得分:3)
唯一的方法是读取整个文件,更改第3行,然后将其全部写回。基本上,就像这样:
$lines = file($file);
$lines[2] = $_POST['data'];
file_put_contents($file, implode("\n", $lines));
顺便说一句,你的阅读代码并非“仅”读取第3行 - 它按文件()读取所有行,然后你只使用第3行。