PHP |替换大型txt文件中的行

时间:2016-10-21 12:38:01

标签: php replace text-files line-numbers

我有一个大的txt文件,例如:
text.txt包含:

line1
line2
line3
line4
line5
line6
line7
line8
line9

但我无法获得任何解决方案如何制作一个PHP文件,只需用内容4替换行line4并使用不同的文本....

感谢您的帮助! :)

3 个答案:

答案 0 :(得分:2)

你应该使用PHP的file()函数。它将返回一个包含每一行的数组。

$file = file('path/to/text.txt');
$lines = array_map(function ($value) { return rtrim($value, PHP_EOL); }, $file);
$lines[3] = 'New content for line 4';
$lines = array_values($lines);

要再次保存,请使用换行符破坏数组:

$content = implode(PHP_EOL, $lines);
file_put_contents('path/to/your/file.txt', $content);

答案 1 :(得分:0)

你可以在一个数组中读取你的文件,通过删除第3个索引删除第4行,然后将所有文件放回文件中:

$lines = file('text.txt'); //read the file in an array
array_splice($lines , 3); //remove 4th line
//or
array_splice($lines , 3, 'different text'); //replace line with different text
file_put_contents('text.txt', implode("\n", $lines)); //put the array back into the file

答案 2 :(得分:0)

我认为解决方案应如下所示 -  1.使用 file_get_contents()函数获取文本文件的内容  2.然后替换文本  3.然后再次使用 file_put_contents()

再次写回该文本文件中的现有数据

代码段

$remove_text = "text to remove";
$file_content = file_get_contents("your text file");
if(($key = array_search($remove_text, $file_content)) !== false) {
    unset($file_content[$key]);
}
file_put_contents("your text file",$file_content);

希望有所帮助:)