文件在不应该被截断时被截断

时间:2016-12-23 20:29:03

标签: php

我有以下php脚本。

<?php

create_time_stamp('time_stamp_file.txt');

function create_time_stamp($fname)
{
    $fh = fopen($fname, 'c+');
    if (!$fh) {
        die ('Could not open date stamp file');
    }
    $time = time();
    $time_array = array(
        'epochtime' => $time,
        'date' => date('Y-m-d H:i:s', $time)
    );
    fwrite($fh, json_encode($time_array)."\r\n");
}

time_stamp_file.txt中有以下内容:

{"epochtime":1482524298,"date":"2016-12-23 20:18:18"}

当我运行脚本时,我正在查看其中的内容:

{"epochtime":1482524540,"date":"2016-12-23 20:22:20"}
{"epochtime":1482524298,"date":"2016-12-23 20:18:18"}   

相反,它只有一行:

{"epochtime":1482524540,"date":"2016-12-23 20:22:20"}

我认为c +意味着,将指针放在文件的开头,不要截断它,然后打开它进行读/写。有任何想法吗?

注意:是的,我可以将文件读入缓冲区,将数据添加到开头,然后将其写回文件,但我的问题是关于使用c +标志。

1 个答案:

答案 0 :(得分:0)

只需在打开它后写入fread($ fh,filesize(&#39; time_stamp_file.txt&#39;))(读取文件一次),它将按预期工作。