fseek($ file,SEEK_END)+ fwrite()写入文件的开头而不是结束

时间:2015-09-22 19:48:18

标签: php json io fwrite

我试图将字符串附加到包含json字符串的文件中。 为此,我必须删除最后一个括号"]",并在文件末尾附加新字符串。 这就是我尝试这样做的方式:

$fh = fopen($target_file, 'r+') or die("can't open file");  // opens file
$stat = fstat($fh);                                         // get data from statt struct
ftruncate($fh, $stat['size']-1);                            // remove last char
fseek($fh, SEEK_END);                                       // move file pointer to end
fwrite($fh, $append_str);                                   // write new string
fclose($fh);                                                // close

然而,$ append_str被写入文件的开头。 有效的附加操作应该有什么不同? (p.s。:使用wamp服务器)

2 个答案:

答案 0 :(得分:3)

只需使用+,它会将文件指针设置在文件的末尾。

答案 1 :(得分:0)

我看到第二个参数被省略了,这不是 fseek 的工作原理。

要将文件指针设置为文件末尾,您还需要设置偏移参数:

fseek($fh, 0, SEEK_END);