使用自定义功能删除超过指定时间的文件夹中的所有文件

时间:2014-03-27 10:55:54

标签: php

我正在尝试删除文件夹中超过x小时的所有文件(当前示例为一小时)。但它不尊重条件,脚本删除文件夹中的所有文件,如果它们超过1小时或者超过1小时则无关紧要。

<?php
  error_reporting(E_ALL); 
  ini_set('display_errors', 'on');

  function destroy($dir) {
    $mydir = opendir($dir);
    while($file = readdir($mydir)) {
      if($file != "." && $file != "..") {
        chmod($dir.$file, 0777);
        if(is_dir($dir.$file)) {
          chdir('.');
          while($dir.$file) {
            if(date("U",filectime($file)) >= time() - 3600) {
                unlink($dir.$file);
        echo $file.' had been deleted';
            }
          }
        } else
          unlink($dir.$file) or DIE("couldn't delete $dir$file<br />");
      }
    }
    closedir($mydir);
  }

  $docroot = $_SERVER['DOCUMENT_ROOT'];
  $docroot = $docroot.'/scrapers/thumbnails/';
  destroy($docroot);
?>

1 个答案:

答案 0 :(得分:0)

尝试:

function destroy($dir) {
    $mydir = opendir($dir);
    while($file = readdir($mydir)) {
        if($file != "." && $file != "..") {
            chmod($dir.$file, 0777);
            if(is_dir($dir.$file)) {
                chdir('.');
                while($dir.$file) {
                    if((time() -  filemtime($file)) > 3600) {
                        unlink($dir.$file);
                        echo $file.' had been deleted';
                    }
                }
            } else
                if((time() -  filemtime($file)) > 3600) {
                    unlink($dir.$file) or DIE("couldn't delete $dir$file<br />");
                }
        }
    }
    closedir($mydir);
}