我有以下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 +标志。
答案 0 :(得分:0)
只需在打开它后写入fread($ fh,filesize(&#39; time_stamp_file.txt&#39;))(读取文件一次),它将按预期工作。