将字符串附加到文件的特定位置



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

{}

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

我试过这个:

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

但是输出是{test的,我也尝试了其他模式,如w+(结果> test(,a+(结果> {}test

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

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

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

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

然后使用 W+ 保存文件

无法在文件中间插入某些内容。 您所能做的就是在要写入的位置之后读取所有数据,稍后再写回。

最新更新