【发布时间】:2014-05-10 14:27:27
【问题描述】:
我正在尝试使用 SplFileObject() 逐行编辑文件。我可以选择要编辑的文件的行。但是我该如何在该行写入 $string 呢?
这是我获取该行的代码:
<?php
$file = new SplFileObject('myfile.txt');
$file->seek(9999); // Seek to line no. 10,000
echo $file->current(); // Print contents of that line
?>
如何在该行插入字符串?
注意,我不想覆盖文件,我只是想在给定的行插入一个 $string。
【问题讨论】:
-
不幸的是,它不是这样工作的。写入文件是以字节为单位的,而不是行。您必须编写新行(从旧行开始),但还必须重新编写文件的其余部分以弥补行长的差异(如果行的长度不同)。根据您实际尝试使用此文件执行的操作,可能会有更好的选择。
-
您有什么建议吗?
-
视情况而定。线都是等长的吗?你如何反对覆盖文件?你会反对像 SQLite (row = line) 这样的东西而不是文本文件吗? …
-
其实是另一个PHP文件,行长不一。
-
有什么原因你不能写出一个新文件,它是带有添加字符串的当前文件的副本?
标签: php splfileobject