특정 확장자를 가진 파일삭제 소스입니다만..
본문
아래 소스는 폴더내 jpg 확장자를 가진 파일을 삭제하는 소스입니다...
저는 여기다 "파일수정이 30일 이상 지난파일" 이라는 조건을 && 추가하고 싶습니다.
계속 해보는 중인데 잘 되질않아서 고수님들께 올렸습니다
$directory = "./";
$handle = opendir($directory); // 절대경로
while ($file = readdir($handle)) {
$fileInfo = pathinfo($file);
$fileExt = $fileInfo['extension']; // 파일의 확장자를 구함
if($fileExt == "jpg") {
@unlink($directory.$file);
}
}
closedir($handle);
답변 3
아래처럼 해보세요.
while ($file = readdir($handle)) {
$last_modified_time = filemtime($file);
$diff = time() - $last_modified_time;
$days = ceil($diff / 86400); // 마지막 수정날짜가 몇일 지났는지 $days 에 나옴
.....
.....
if($fileExt == "jpg" && $days > 30) {
.....
}
}
채택 답변이 있으나 참고로 추가합니다.
$lists = glob('./*'); // glob('./*', GLOB_NOSORT) // 해당 경로 목록
foreach ( $lists as $list ) { // 개별 반복
if ( !is_file($list) // 파일 아니면 스킵
|| !preg_match('/\.jpe?g/i', $list) // jpg, jpeg 확장자 아니면 스킵 (대소문자 무시)
|| ceil(($_SERVER['REQUEST_TIME']-filemtime($list))/86400)<30 // 30일 미만이면 스킵
) continue;
unlink($list); // 삭제
}
답변을 작성하시기 전에 로그인 해주세요.