PHP | Заменить строку в большом текстовом файле

У меня большой txt-файл, например:
text.txt который содержит:

line1
line2
line3
line4
line5
line6
line7
line8
line9

Но я не могу найти решение, как сделать PHP-файл, который просто заменяет строку 4 с содержанием line4 с другим текстом ….

Спасибо за любую помощь! 🙂

0

Решение

Вы должны использовать 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);
2

Другие решения

Я думаю, что решение должно быть следующим:
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);

Надеюсь, поможет 🙂

0

Вы можете прочитать ваш файл в массиве, удалить 4-ю строку, удалив 3-й индекс, и собрать все вместе обратно в файл:

$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
0
По вопросам рекламы [email protected]