【发布时间】:2021-11-29 21:07:45
【问题描述】:
当我使用选项w+ 时,它会在读取文件之前截断文件。我想锁定多个脚本使用的文件,然后读取和覆盖,然后解锁。这是简化的代码。
$fp = fopen($file, "w+");
if(flock($fp, LOCK_EX)) {
$content = fread($fp, $filesize);
echo $content; // this is empty, must not be empty
$job_queue = explode("\n", $content, LOCK_EX);
$next_job = array_shift($job_queue);
fwrite($fp, implode("\n", $job_queue));
flock($fp, LOCK_UN);
} else {
echo '<br>Error: cannot lock job queue file';
}
fclose($fp);
【问题讨论】: