PHP 하위 폴더및 파일 일괄 삭제

오랜만에 PHP로 간단한 사이트를 개발하고 있습니다. 이미지를 변환하고 다운로드하는 사이트인데요. 이미지를 업로드 후 필요가 없는 임시파일을 삭제하는 기능을 구현하고 싶었습니다.

 

_common.php 2020-09-08 23-27-55.png

 

사용자별 아이디 혹은 세션 값으로 폴더를 만들고 이미지를 업로드하는 기능까지 구현을 하였는데, PHP에서는 윈도 탐색기의 삭제처럼 폴더 자체를 삭제하는 기능은 별도로 지원을 하지 않았습니다.

 

리눅스의 명령어를 지원을 하고는 있는데, 딱 1가지 기능들만 가지고 있더군요. 해당 폴더내 파일 삭제와 폴더 삭제였습니다.

조금 검색을 해보니 재귀 함수를 호출해서 하위 폴더까지 삭제할 수 있게 만들어 놓은 자료가 있었습니다.

 

비슷한 자료들을 여러 가지를 찾아보았는데, 폴더 안의 폴더 및 파일을 삭제 처리하는 건 아래 소스가 유일하였습니다. 

 

PHP에서 일괄 폴더 및 파일 삭제를 할 경우 참고하시기 바랍니다.

 

참고 소스

   //하위폴더 디렉토리 정리
    function deldir($dir){
        $handle = opendir($dir);
        while(false!==($FolderOrFile=readdir($handle))){
            if($FolderOrFile !="." && $FolderOrFile != ".."){
                if(is_dir("$dir/$FolderOrFile")){
                    deldir("$dir/$FolderOrFile");
                }else{
                    unlink("$dir/$FolderOrFile");
                }

            }
            
        }
        
        closedir($handle);
        if(rmdir($dir)){
            $success=true;
        }
        return $success;
    }

소스에 대해서 간략하게 말씀드리면 반복문을 통해서 하위 폴더 여부를 확인하고 파일들을 삭제, 폴더 삭제를 반복하면서 폴더 아래 모든 내용을 삭제 처리하는 것을 구현하고 있습니다.