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

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

 

 

사용자별 아이디 혹은 세션 값으로 폴더를 만들고 이미지를 업로드하는 기능까지 구현을 하였는데, 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;
    }

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