想象一下,我有一个包含以下内容的TXT文件:
Hello
How are you
Paris
London
我想写在巴黎之下,所以巴黎的索引为2,我想用3写。
目前,我有这个:
$fileName = 'file.txt';
$lineNumber = 3;
$changeTo = "the changed line\n";
$contents = file($fileName);
$contents[$lineNumber] = $changeTo;
file_put_contents($fileName, implode('',$contents));
但它只修改了特定的行。而且我不想修改,我想写一个新的行,让其他人留在原地。
我该怎么做?
修改:已解决。以一种非常简单的方式:
$contents = file($filename);
$contents[2] = $contents[2] . "\n"; // Gives a new line
file_put_contents($filename, implode('',$contents));
$contents = file($filename);
$contents[3] = "Nooooooo!\n";
file_put_contents($filename, implode('',$contents));
答案 0 :(得分:2)
您需要解析文件的内容,将内容放在一个新数组中,当您想要的行号出现时,将新内容插入该数组。然后将新内容保存到文件中。调整后的代码如下:
$fileName = 'file.txt';
$lineNumber = 3;
$changeTo = "the changed line\n";
$contents = file($fileName);
$new_contents = array();
foreach ($contents as $key => $value) {
$new_contents[] = $value;
if ($key == $lineNumber) {
$new_contents[] = $changeTo;
}
}
file_put_contents($fileName, implode('',$new_contents));