1

假设我们有这个文件 test.txt:

{}

我们想在{和之间添加文本}

我试过这个:

$f = new SplFileObject($filepath, 'r+');
$f->fseek(1);
$f->fwrite('test');

但输出是{test,我也尝试了其他模式,如w+(result-> test)、a+(result->{}test

编辑:忘了告诉我不想将文件的所有内容加载到内存中,这就是我使用的原因SplFileObject

4

3 回答 3

1

必须将文件加载到内存中才能进行这种转换——至少是文件的一部分。这就是记忆的用途。您可以读取一个文件并在修改后写入另一个文件,以避免将整个文件保留在内存中。

如有必要,然后删除旧文件并将新文件重命名为旧文件。

于 2014-04-24T15:07:57.520 回答
1

将文件的全部内容作为字符串读取,并在其中写入内容: 在指定位置插入字符串

然后保存文件W+

于 2014-04-24T14:43:13.793 回答
0

It's not possible to insert something into the middle of a file. All you can do is read in all the data after the position you want to write, and write it back later.

于 2014-04-24T14:51:46.520 回答