Php替换文件txt中的行

时间:2014-02-04 16:40:13

标签: php replace line

<?php
$myFile = "/home/user1/www/cgi-bin/mytext.txt";
$lines = file($myFile);
$lines[3] = $_POST['title'];
file_put_contents($myFile , implode("\n", $lines));
?>

我只更改行“number 3”而不更改其他行,哪里有错误?

我已输入mytext.txt:

  • line1 -------------------------------------
  • line2 #WORD:
  • line3 CHANGETHIS
  • line4
  • line5 HELLO
  • line6 PIPPO
  • line7 FOO
  • line8 KATEEOWEN

午餐后脚本这是输出mytext.txt:

  • line1 -------------------------------------
  • line2
  • line3 #WORD:
  • line4
  • line5 CHANGETHIS
  • line6
  • line7 $ _POST ['title']
  • line8 HELLO
  • line9
  • line10 PIPPO
  • line11
  • line12 FOO
  • line13
  • line14 KATEEOWEN

2 个答案:

答案 0 :(得分:1)

您可以在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));

答案 1 :(得分:-1)

你可以毫无问题地使用str_replace函数

看这个

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

然后将函数结果保存到文件