[英]Append string to a file at certain position
說我們有這個文件test.txt:
{}
我們想在{
和}
之間添加文本。
我嘗試了這個:
$f = new SplFileObject($filepath, 'r+');
$f->fseek(1);
$f->fwrite('test');
但是輸出是{test
,我也嘗試了其他模式,例如w+
(result-> test
), a+
(result-> {}test
編輯:忘了告訴我我不想將文件的所有內容加載到內存中,這就是為什么我使用SplFileObject
以字符串形式讀取文件的全部內容,並在其中寫入內容: 在指定位置插入字符串
然后使用W+
保存文件
您必須將文件加載到內存中才能進行這種轉換-至少是文件的一部分。 那就是記憶的目的。 您可以讀取一個文件,然后進行修改后再寫入另一個文件,以避免將整個文件保留在內存中。
如有必要,請刪除舊文件,然后將新文件重命名為舊文件。
無法在文件中間插入內容。 您所能做的就是在要寫入的位置之后讀取所有數據,然后再寫回去。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.