[PHP] 일정기간 지난 파일 삭제
특정 디렉토리 내의 모든 파일을 체크해서 최종 수정일 30일이상 경과된 파일은삭제하는 코드이다.
최종 수정 시간은 filemtime()을 이용해 구할 수 있으며 그누보드의 경우 index.php 파일 있기 때문에
이 파일은 삭제하지 않도록 했다. 그누보드 관련 작업을 하다 보니 자연스레 이렇게 된다. ^^’
<?
$dir =’./data/file’;
recursive_file_delete($dir);
function recursive_file_delete($dir)
{
if(is_dir($dir)) {
if($dh = opendir($dir)) {
while(($entry = readdir($dh)) !== false) {
if($entry == ‘.’ || $entry == ‘..’)
continue;
$subdir = $dir.’/’.$entry;
if(is_dir($subdir)) {
recursive_file_delete($subdir);
} else {
if($entry == ‘index.php’)
continue;
$sfile = $dir.’/’.$entry;
$mtime = @filemtime($sfile);
// 최종수정일이 30일 이상인 파일만 삭제
if(file_exists($sfile) && (time() – $mtime <= 24*60*60*30))
continue;
// 파일삭제
@unlink($sfile);
}
}
closedir($dh);
}
}
}
?>