php의 함수 rmdir은 directory를 삭제해주는 함수이다. 해당 directory에 파일이 남아 있다면 에러가 나면서 삭제가 되지 않는다. 이럴 때 해당 디렉토리 안의 파일들도 같이 삭제를 해주는 처리가 필요하다.
아래 함수는 재귀적 로직으로 내부 디렉토리의 디렉토리 안의 파일들까지 삭제를 하며 최종적으로 지정한 디렉토리까지 말끔히 지워준다.
function rmdir_all($dir) {
if (!file_exists($dir)) {
return;
}
$dhandle = opendir($dir);
if ($dhandle) {
while (false !== ($fname = readdir($dhandle))) {
if (is_dir( "{$dir}/{$fname}" )) {
if (($fname != '.') && ($fname != '..')) {
$this->rmdir_all("$dir/$fname");
}
} else {
unlink("{$dir}/{$fname}");
}
}
closedir($dhandle);
}
rmdir($dir);
}
위 함수를 추가하고 rmdir대신 rmdir_all에 디렉토리 경로를 넣어주면 된다.
'Dev > PHP' 카테고리의 다른 글
| Linux 리눅스 PHP 버전 확인 및 업그레이드 방법 (0) | 2021.02.21 |
|---|---|
| [PHP] error_log 함수 사용시 한글 깨짐 문자가 제대로 보이지 않는 문제 해결 (0) | 2018.04.11 |
| [PHP] 문자열에서 글자수를 기준으로 자르기 (영어 한글) (0) | 2018.03.27 |
| [PHP] 배열 삭제 방법 array_splice array_values array_diff unset (0) | 2017.06.22 |
| [PHP] Array 배열 요소 추가 삭제 값 구하기 합치기 결합하기 다차원 사용 방법 정리 (1) | 2017.06.14 |
| PHP Fatal error: Cannot redeclare 에러 해결 방법 (0) | 2016.07.26 |
| CentOS 7에 yum으로 PHP 5.6을 설치하는 방법 (0) | 2016.07.18 |
| php에서 간단히 mail 함수로 메일 보내기 (1) | 2014.03.13 |
| PHP의 프레임워크의 역사와 현재 (CakePHP, Zend Framework, symfony, Mojavi 등) (0) | 2011.07.04 |
| PHP isset, empty, is_null의 상관 관계와 정보 요약 (0) | 2010.12.22 |