有没有办法检查一个文件是否被另一个进程从 php 脚本访问或修改。我曾尝试使用 filemtime()、fileatime() 和 filectime() 函数,但我有一个循环中的脚本,它正在不断检查,但似乎一旦脚本被执行,它只会从第一次开始文件已检查.. 一个示例是将文件上传到 FTP 或 SMB 共享,我在下面尝试了此操作
while(1==1)
{
$LastMod = filemtime("file");
if(($LastMod +60) > time())
{
echo "file in use please wait... last modified : $LastMod";
sleep(10);
}else{
process file
}
}
我知道文件在不断变化,但 $LastMod 变量没有更新,但结束进程并再次执行将从文件中获取新的 $LastMod 但每次在循环中检查文件时 dosnt 似乎都会更新
我也尝试过查看 filesize() 但得到相同的症状我也查看了 flock() 但由于文件是在 PHP 之外创建或修改的,所以我看不出这是如何工作的。
如果有人有任何解决方案请告诉我
感谢 Vip32
PS。使用 PHP 处理文件需要与 mysql 交互和查询外部网站