【问题标题】:Automatically delete files based on date of creation根据创建日期自动删除文件
【发布时间】:2014-03-18 11:17:11
【问题描述】:

我在从服务器上的特定文件夹中自动删除文件时遇到问题。

我需要每 31 分钟对存储传入文档的文件夹运行一次自动删除。这些文件将始终为 *.pdf 格式。

我在这个网站上发现了一个类似的问题。

How to delete files from directory based on creation date in php?

但是我的问题是 *.pdf 文件,而且我以前从未使用过 php,理想情况下我正在寻找一个 .bat 文件,但如果这不可能,那也没问题。

【问题讨论】:

    标签: php batch-file automation delete-file


    【解决方案1】:
    <?php
    if ($handle = opendir('/path/to/files')) {
    
        while (false !== ($file = readdir($handle))) { 
            $filelastmodified = filemtime($file);
    
            if((time() - $filelastmodified) > 24*3600 && strtolower(substr($file, -4)) == ".pdf")
            {
               unlink($file);
            }
    
        }
    
        closedir($handle); 
    }
    ?>
    

    这个添加的条件检查文件名是否以“.pdf”结尾。您可以将其作为 cronjob 运行。

    您不妨改用 shell 命令。 find-name-exec-mtime 的作用相同,并且无需 PHP 解析器。

    【讨论】:

    • 感谢您的帮助,只是为了仔细检查,我需要将路径更改为任何内容。就我而言,将时间更改为 1860。然后要激活命令,我只是将它放在 *.txt 中,然后将名称更改为 *.Crontab?
    • 是的,您应该手动运行脚本以确保其正常工作。你的机器是linux的吗?如果不是,您不能以这种方式使用 cronjobs。您必须在 Windows 上搜索替代方案。如果您使用 linux,请阅读有关 cronjobs 的内容。只是重命名文件不起作用。基本上你必须执行crontab -e 并以特定语法在文件中插入一行(例如在有关 cronjobs 的链接文章中进行了解释)。
    • 不,不幸的是我在 Windows 上运行。抱歉,这对我来说是全新的,所以我可能会问一些愚蠢的问题。快速搜索已将我发送到任务计划程序,感谢您的帮助。
    猜你喜欢
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2019-06-24
    • 2011-01-13
    相关资源
    最近更新 更多