특정 확장자를 가진 파일삭제 소스입니다만..

특정 확장자를 가진 파일삭제 소스입니다만..

QA

특정 확장자를 가진 파일삭제 소스입니다만..

답변 3

본문

아래 소스는 폴더내  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); // 삭제
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 24
© SIRSOFT
현재 페이지 제일 처음으로