PHP 问题,害怕抛出错误

PHP problems, fread throwing errors

我的部分代码如下,我正在使用 php 脚本读取目录中的文件,这些文件不断写入,此脚本搜索它们并将其内容写入数据库。我收到的错误是,当文件仍在写入并且此脚本检测到它时它会尝试读取文件,它收到的 $data 与文件大小不匹配,因为它已更改并引发错误。

我的问题是在这个脚本读取文件之前如何确保文件已经写入成功。提前致谢。

$myfile = fopen($filename, "r") or die("Unable to open file!");
$data = fread($myfile,filesize($filename));
fclose($myfile);

一些阅读建议最好将下面的代码包含在写入文件的脚本中。

if (flock($file,LOCK_EX)){
  fwrite($file,"Write something");
  flock($file,LOCK_UN);
} else {
  echo "Error locking file!";
}

可能有很多种方法,但最常用的方法是文件锁定。写入文件时获取锁,写入完成后释放锁。读取文件前检查锁。

http://php.net/manual/en/function.flock.php