[英]File getting truncated when it's not supposed to
我有以下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 +标志的问题。
只需在打开文件后写入fread($ fh,filesize('time_stamp_file.txt'))(读取一次文件),它就会按预期运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.