在PHP中,每24小时删除一个文件夹的所有文件

在PHP中,每24小时删除一个文件夹的所有文件,php,Php,我搜索了一些相关的问题,但无法理解 我想在每24小时后删除文件夹中的所有文件,但有时会收到警告,有时会正常工作。文件夹路径是c:\wamp\www\Jamil 以下是消息来源: <?php $dir = "Jamil"; // directory name foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') continue; if((time() - fil

我搜索了一些相关的问题,但无法理解

我想在每24小时后删除文件夹中的所有文件,但有时会收到警告,有时会正常工作。文件夹路径是
c:\wamp\www\Jamil

以下是消息来源:

<?php
$dir = "Jamil"; // directory name

foreach (scandir($dir) as $item) {
    if ($item == '.' || $item == '..')
        continue;

        if((time() - filemtime($item)) >= 30    && is_file($item)){
        unlink($dir.DIRECTORY_SEPARATOR.$item);
        echo "All files deleted";}
    }   
//rmdir($dir);

?>

我从不同的网站复制了代码。有人能帮忙吗?我得到这个警告:

警告:filemtime()[function.filemtime]:第10行C:\wamp\www\delete1.php中jamil.html的stat失败

试试这个功能

function wipedir($dir) {
        try{  
            if(is_dir($dir)){
                $mydir = opendir($dir);
                while(false !== ($file = readdir($mydir))) {
                    if($file != "." && $file != "..") {
                        chmod($dir.$file, 0777);
                        if(is_dir($dir.$file)) {
                            chdir('.');
                            destroy($dir.$file.'/');
                            rmdir($dir.$file) or DIE("Unable to delete $dir$file");
                        }else{
                            unlink($dir.$file) or DIE("Unable to delete $dir$file");
                        }
                    }
                }
                closedir($mydir);

                return true;
            }else{return true;}
        }catch (Exception $e){return false;} 
    }
因此,用法将是

$dir = 'Jamil';
wipedir($dir);

这应该以指定的时间间隔放在crontab等运行的文件中。

如果您使用php脚本进行此操作,您仍然需要以某种方式安排它运行。因此,您可以使用cron或计划任务来计划删除本身。 是crontab的一个很好的参考。 如果您使用Windows为自己编写一个小的批处理脚本,请转到“控制面板”,您将获得一个很好的小向导,指导您完成任务调度

PHP实际上不是用于计划任务的工具。如果您的用户需要随时进行删除,这是很好的,但不是针对计划任务

is_file($item)
试一试


对于Linux使用Cron,对于Windows使用调度任务。PHP不打算这样做。只需删除rmdir,无需销毁它,然后重新创建:)但如果您指定了24小时后删除文件的时间??正如我在最后一行@user2290749中所说,您应该通过cron选项卡运行它。通常可通过cPanel完成:-
 if(is_dir($dir.DIRECTORY_SEPARATOR.$item) && $item != ".." && $item != ".")