我正在尝试使用 PHP 写入文件,这是我正在使用的代码(取自我上一个问题的答案):
$fp = fopen("counter.txt", "r+");
while(!flock($fp, LOCK_EX)) { // acquire an exclusive lock
// waiting to lock the file
}
$counter = intval(fread($fp, filesize("counter.txt")));
$counter++;
ftruncate($fp, 0); // truncate file
fwrite($fp, $counter); // set your data
fflush($fp); // flush output before releasing the lock
flock($fp, LOCK_UN); // release the lock
fclose($fp);
读取部分工作正常,如果文件被读取,则其内容被读取,即如果文件包含2289
,2289
则被读取。
问题是,当它增加并将值重写到该文件时,[NUL][NUL][NUL][NUL][NUL][NUL][NUL][NUL]1
会被写入。
我错过了什么?为什么要写入空字符?