我遇到unlink
函数的问题。
我有一个页面,当刷新时,它会在目录中搜索新添加的文件。用户可以选择管理文件,也可以删除任何文件。但是,当用户删除文件时,在从服务器目录中删除实际文件之前几乎有5秒的延迟。同时,如果用户刷新浏览器,则应该删除的同一文件将重新显示为新文件。这个问题是,如果用户再次删除此文件,由于该初始延迟,该文件不再存在...
对此有何想法?这让我发疯,不知道如何纠正这种情况......
答案 0 :(得分:1)
一种解决方案可能是在调用unlink()时创建一个新文件,并将新文件命名为$ original_filename。“_ deleted”。然后,当您列出文件时,请以“_deleted”排除任何结尾。然后你只需要担心每次使用cron作业清理所有“_deleted”文件。
function my_unlink($filename){
touch($filename.'_deleted');
unlink($filename);
}
function list_files(){
if ($handle = opendir('.')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != ".." && !preg_match('/_deleted$/',$entry)) {
echo "$entry\n";
}
}
closedir($handle);
}
}
答案 1 :(得分:0)
clearstatchache(true, $file)
仍然值得一试,但在unlink
上的文档后我感到悲观。
目录中可能存在太多文件,使用多个目录可能会有所帮助(使用带有文件名前两个字符的目录)。
我希望缓存列表概述页面。使用
header("Cache-Control: no-cache, must-revalidate");
左右可能有帮助。