簡體   English   中英

每隔24小時在PHP中刪除一個文件夾中的所有文件

[英]Delete all files of a folder after every 24 hours in PHP

我搜索了一些相關問題,但無法理解。

我想每隔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的統計信息失敗

如果為此使用php腳本,則仍需要以某種方式安排它的運行。 因此,您可以使用cron或計划的任務來計划刪除本身。 是crontab的良好參考。 如果您使用Windows,請為自己編寫一個小的批處理腳本,請轉到“控制面板”,您會看到一個漂亮的小向導,它可以指導您進行任務計划。

PHP確實不是用於計划任務的工具。 如果您的用戶需要在需要時執行刪除操作(而不是計划任務),則可以這樣做。

試試這個功能;

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等運行的文件中。

is_file($item)

嘗試

 if(is_dir($dir.DIRECTORY_SEPARATOR.$item) && $item != ".." && $item != ".")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM