PHP - 是否正在写入文件?

时间:2013-04-09 16:26:05

标签: php file

我的邮件服务器每分钟写一个文件,这很好,我很高兴它这样做。

但是在我的WebServer上,我想检查当前是否正在写入该文件,如果不是,请向用户显示下载链接。

我有什么方法可以做到这一点..

例如:运行一个循环,这个循环将继续查找,直到文件不再被写入,然后显示文件的下载链接?

我已经阅读了flock()但我不认为这会有所帮助,因为另一个进程/操作系统实际上是在创建文件!

2 个答案:

答案 0 :(得分:1)

您的写作脚本/应用程序/进程应该在开始写入主文件之前写入锁定文件(filename.lock之类的空文件,然后在完成后删除它。这是常规锁定方法,但您的脚本只需要检查是否存在filename.lock。如果是,则写入文件。

答案 1 :(得分:0)

如果没有其他人正在编写,您只能获取读或写锁。你不应该这样做。

此外,当用户下载文件时,文件可能同时发生了变化。你确定你对你想要的东西有正确的心理形象吗?