![]() |
delete by M i x y 저작자표시 2.0 일반 크리에이티브 커먼즈 라이선스 |
소스 전체 보기
자세한 설명에 앞서 전체 소스를 먼저 보도록 하겠습니다.function removeDir($path)
{
$path = getRealPath($path);
if (!is_dir($path)) return;
$directory = dir($path);
while ($entry = $directory->read()) {
if ($entry != "." && $entry != "..") {
if (is_dir($path."/".$entry)) {
removeDir($path."/".$entry);
} else {
@unlink($path."/".$entry);
}
}
}
$directory->close();
@rmdir($path);
}
function getRealPath($source)
{
$temp = explode('/', $source);
if ($temp[0] == '.') {
$source = $_SERVER['DOCUMENT_ROOT'].'/'.substr($source, 2);
}
return $source;
}
이 소스에 대한 자세한 설명
이 소스에 대한 자세한 설명을 시작하기 전에 이 소스의 출처에 대해 알려드리겠습니다. 이 소스는 익스프레스엔진 (XpressEngine)의 파일 관련 클래스에서 가져와 약간의 수정을 한 것입니다.이 소스는 익스프레스엔진 (XpressEngine), 텍스트큐브 (Textcube) 등의 프레임워크에서 자동적으로 생성된 디렉토리 (예를 들면, files)를 삭제하기 위해 필요합니다. FTP에서 삭제하면 될 것을 왜 이렇게 작업하느냐, 하시는 분들도 계실 것입니다. 하지만, 웹호스팅을 사용하는 개발자의 경우, 프로그램에서 자동적으로 생성된 파일이나 디렉토리는 FTP (FTP만 지원하는 웹호스팅의 경우)를 통해 삭제하지 못합니다. 따라서 위와 같은 소스를 사용하여 삭제가 불가능한 디렉토리를 삭제할 수 있는 것입니다.
사용 방법
이 소스의 사용법은 아주 간단합니다.아래와 같이 removeDir() 함수를 불러오면 됩니다.
(만약 삭제하고자 하는 디렉토리의 이름이 files 인 경우)
removeDir('files');
물론, 위와 같이 디렉토리를 지정해주는 경우, 위의 함수를 포함하고 있는 파일은 반드시 files 디렉토리와 같은 디렉토리에 위치해야 합니다. 따라서 루트 디렉토리에 위의 소스가 포함된 파일을 저장한 후, 그곳에서 삭제할 디렉토리의 경로를 지정하는 것이 바람직합니다.
마지막으로, 하나의 팁을 알려드리겠습니다.
삭제할 디렉토리의 경로를 ./files 와 같이 입력하면, 이 경로는 자동적으로 <루트 디렉토리>/files로 변환됩니다.