我的代码的一部分在下面,我使用php脚本来读取目录中的文件,这些文件经常被写入,这个脚本搜索它们并将它们的内容写入数据库。我收到的错误是,当一个文件仍然被写入并且该脚本检测到它尝试fread该文件时,它接收的$ data与文件大小不匹配,因为它已经改变并且引发了错误。 / p>
我的问题是如何在此脚本读取文件之前确保文件已成功写入。提前谢谢。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
有些人认为,最好将下面的代码包含在编写文件的脚本中。
$myfile = fopen($filename, "r") or die("Unable to open file!");
$data = fread($myfile,filesize($filename));
fclose($myfile);
答案 0 :(得分:2)
可能有很多方法,但最常见的方法是文件锁定。写入文件时获取锁定,完成后释放锁定。在读取文件之前检查锁定。