使用php替换文本文件中特定位置的字符串

时间:2014-05-09 01:43:11

标签: php string

我有这样的事情:

//line1   1321 precalculus 30 0
//line2   1244 accounting 30 0

在常见的文本文件中。

如何将第1行的30号码更改为29,将0更改为1等。

1 个答案:

答案 0 :(得分:0)

对于最简单的情况,例如您描述的情况,假设您知道要更改的行以及您希望更改的内容,则可以使用:

// Get text file contents as array of lines
$txt = file('text.txt'); 

// Make the change to line 1
$txt[0] = "1321 precalculus 29 1"; 

// Put the lines back together, and write back into txt file
file_put_contents('text.txt', implode("\n", $txt)); 

根据您真正想要做的事情,这可能无效。基本上它只是逐行拆分文本文件,然后用新数据覆盖第1行,然后将整个文本重写回文本文件。同样,根据您的文件大小以及您真正想要完成的内容,这可能不是最佳解决方案。但它确实做了你所描述的,可能是一个很好的起点。

更新正如Jorg的评论所指出的那样,不需要分两步扩展文件内容,因为file()将在一个步骤中完成相同的任务。