为什么PHP文件处理程序无法正常工作?

时间:2012-05-01 15:58:21

标签: php file fseek splfileobject

我在'test.txt'文件中有这个内容: lucas 我想在文件中查找指针并提前覆盖信息。假设我这样做:

$f = new SplFileObject('test.txt', 'a');

$f->fseek(-5, SEEK_END);

var_dump($f->ftell());

$f->fwrite('one');

这应该产生: oneas 但执行结果: lucasone

我对代码逻辑感到疯狂甚至不行吗?

如何正确地做我想做的事?

1 个答案:

答案 0 :(得分:3)

您打开了要追加的文件:

$f = new SplFileObject('test.txt', 'a');

表示您无法在文件中查找。相反,打开它进行阅读和写作:

$f = new SplFileObject('test.txt', 'r+');

他们也在fseek documentation

中说出来
  

如果您以附加(a或+)模式打开文件,则无论文件位置如何,您写入文件的任何数据都将被追加,并且调用fseek()的结果将是未定义的。