Php заменить строку в файле txt

Я бы изменил только строку "номер 3", не меняя другие строки, где ошибка?

У меня есть вход mytext.txt:

  • линия 1 -------------------------------------
  • line2 #WORD:
  • line3 CHANGETHIS
  • строка4
  • line5 HELLO
  • line6 PIPPO
  • line7 FOO
  • line8 KATEEOWEN

после обеденного сценария это вывод mytext.txt:

  • линия 1 -------------------------------------
  • line2
  • line3 #WORD:
  • строка4
  • line5 CHANGETHIS
  • line6
  • line7 $ _POST ['title']
  • line8 HELLO
  • line9
  • line10 PIPPO
  • line11
  • line12 FOO
  • line13
  • line14 KATEEOWEN
2 ответа

Вы можете использовать константу FILE_IGNORE_NEW_LINES в file() или не использовать больше строк новой строки:

file_put_contents($myFile , implode('', $lines));

Или просто так, как он будет взорван для вас:

file_put_contents($myFile , $lines);

Но вам нужно добавить новую строку здесь:

$lines[3] = $_POST['title'] . "\n";

Так что это может быть самым прямым:

$lines = file($myFile, FILE_IGNORE_NEW_LINES);
$lines[3] = $_POST['title'];
file_put_contents($myFile , implode("\n", $lines));


вы можете использовать функцию str_replace без проблем

смотри это

str_replace('line3 CHANGETHIS', 'line3 #WORD:', $file_content)

и затем сохранить результат функции в файл

licensed under cc by-sa 3.0 with attribution.