rmdir
함수
rmdir
함수는 PHP에서 디렉토리를 삭제하는 함수입니다. 디렉토리가 비어 있을 때만 삭제됩니다. 디렉토리가 비어 있지 않은 경우 rmdir
함수는 실패합니다.
사용법:
bool rmdir ( string $directory [, resource $context ] )
$directory
: 삭제할 디렉토리 경로입니다.$context
: 컨텍스트 옵션을 제공할 수 있습니다. 보통은 생략합니다.
예제:
$dir = 'my_directory';
if (is_dir($dir)) {
if (rmdir($dir)) {
echo 'Directory has been deleted successfully.';
} else {
echo 'Failed to delete the directory.';
}
} else {
echo 'The directory does not exist.';
}
rmdir
함수를 응용한 코드
1. 디렉토리와 하위 파일 모두 삭제하기
function deleteDirectory($dir) {
if (is_dir($dir)) {
$files = scandir($dir);
foreach ($files as $file) {
if ($file !== '.' && $file !== '..') {
$path = $dir . '/' . $file;
if (is_dir($path)) {
deleteDirectory($path);
} else {
unlink($path);
}
}
}
rmdir($dir);
}
}
deleteDirectory('my_directory');
rmdir
함수와 다른 함수 사용하여 응용하는 코드
2. 특정 조건을 만족하는 디렉토리 삭제하기
$baseDir = './files/';
$directories = glob($baseDir . '*', GLOB_ONLYDIR);
foreach ($directories as $dir) {
if (count(glob($dir . '/*')) === 0) {
rmdir($dir);
}
}
rmdir
함수와 조건문, 반복문 사용하는 샘플 코드
3. 사용자가 입력한 디렉토리 삭제하기
$dirToDelete = $_POST['dir'];
if (is_dir($dirToDelete)) {
if (rmdir($dirToDelete)) {
echo 'Directory has been deleted successfully.';
} else {
echo 'Failed to delete the directory.';
}
} else {
echo 'The directory does not exist.';
}
성능 향상을 위한 팁
rmdir
함수는 디렉토리를 삭제할 때 해당 디렉토리가 비어 있어야만 성공합니다. 따라서 디렉토리 안에 파일이나 다른 디렉토리가 있을 경우에는 미리 비워주어야 합니다.- 대량의 디렉토리를 처리해야 할 때는 디렉토리 삭제 작업을 효율적으로 수행할 수 있는 방법을 고려해야 합니다. 예를 들어 여러 디렉토리를 병렬로 처리하거나, 디렉토리 삭제를 큐에 추가하고 배치 작업으로 처리하는 방법이 있습니다.