PHP 取消链接延迟

Dim*_*tri 5 php

我的功能有一些问题unlink

我有一个页面,刷新时会在目录中搜索新添加的文件。用户可以选择管理文件,也可以删除任何文件。然而,当用户删除文件时,在实际文件从服务器目录中删除之前有近5秒的延迟。同时,如果用户刷新浏览器,本应删除的同一文件将重新显示为新文件。问题是,如果用户再次删除该文件,由于初始延迟,该文件将不再存在......

对此有什么想法吗?这让我发疯,不知道如何补救这种情况......

小智 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);
      }
    }
Run Code Online (Sandbox Code Playgroud)