웹마스터 팁
page_full_width">
서브디렉토리,파일까지 모두 삭제하는 함수.
2004.08.24 00:43
파일을 삭제하는 unlink 함수와
디렉토리를 삭제하는 rmdir 함수의 기능을 모두 가지고 있습니다.
rmdir 함수는 디렉토리 안에 서브디렉토리나 파일이 있을 경우 삭제가 불가능하지만,
$name 값이 파일이면 unlink로 지워주고, 디렉토리면 반복문을 사용해 하위구조와 해당 디렉토리를 모두 삭제해줍니다.
P.S - 비효율적이거나, 보완할 부분이 있다면 망설임 없이 태클 부탁드립니다.
<?
function delete_all($name){
if(is_dir($name)){
$ch=0;
$data_list = opendir($name);
while($file = readdir($data_list)){
if ($file != "." && $file != ".."){$ch++;}
}
closedir($data_list);
if($ch){
$data_list = opendir($name);
while($file = readdir($data_list)){
if ($file != "." && $file != ".."){delete_all($name."/".$file);}
}
closedir($data_list);
}
rmdir($name);
}
else{
unlink($name);
}
}
?>
디렉토리를 삭제하는 rmdir 함수의 기능을 모두 가지고 있습니다.
rmdir 함수는 디렉토리 안에 서브디렉토리나 파일이 있을 경우 삭제가 불가능하지만,
$name 값이 파일이면 unlink로 지워주고, 디렉토리면 반복문을 사용해 하위구조와 해당 디렉토리를 모두 삭제해줍니다.
P.S - 비효율적이거나, 보완할 부분이 있다면 망설임 없이 태클 부탁드립니다.
<?
function delete_all($name){
if(is_dir($name)){
$ch=0;
$data_list = opendir($name);
while($file = readdir($data_list)){
if ($file != "." && $file != ".."){$ch++;}
}
closedir($data_list);
if($ch){
$data_list = opendir($name);
while($file = readdir($data_list)){
if ($file != "." && $file != ".."){delete_all($name."/".$file);}
}
closedir($data_list);
}
rmdir($name);
}
else{
unlink($name);
}
}
?>
댓글 5
-
Simsim
2004.08.27 20:03
-
천상원
2004.08.28 15:49
이걸 php로 돌리면 서버에 부하를 많이줍니다. 그냥 쉘로 돌리시는게 나을듯. -
Lepas
2004.08.29 11:42
윈도 서버일 경우를 생각하셔야죠. -
앳플군
2004.08.30 23:01
if (eregi("WIN", $OS)) {
`deltree target`;
} else {
`rm -rf target`;
} -
Lepas
2004.08.24 09:41
만들어놓고 나서 찾아보니..
이런 함수가 이미 있었네요... 쩝;; 헛고생했..ㅠ_ㅜ;;
http://kr.php.net/manual/kr/function.rmdir.php
function deldir($dir)
{
$handle = opendir($dir);
while (false!==($FolderOrFile = readdir($handle)))
{
if($FolderOrFile != "." && $FolderOrFile != "..")
{
if(is_dir("$dir/$FolderOrFile"))
{ deldir("$dir/$FolderOrFile"); } // recursive
else
{ unlink("$dir/$FolderOrFile"); }
}
}
closedir($handle);
if(rmdir($dir))
{ $success = true; }
return $success;
}
제목 | 글쓴이 | 날짜 |
---|---|---|
나만의 미니홈 만들기 ㅡ 글쓰기에 앞서... [1] | 예뜨락 | 2004.11.17 |
[타키의 초보강좌]PHP 기초 강좌 제 2탄[mysql로 들어가보자.] [2] | 타키 | 2004.10.24 |
소수[솟수] 쉽게 구하기[에라토스테네스의 해 알고리즘사용] , 경우의 수 구하기 [5] | 타키 | 2004.10.23 |
[타키의 초보강좌]PHP 기초 강좌 제 1탄[패스워드 인증] [8] | 타키 | 2004.10.23 |
www자동 붙히기 [8] | 미오유 | 2004.10.22 |
IP to 정수변환(;) [4] | 플로렐라 | 2004.10.21 |
한글자르는 문제 PHP차원에서 해결된 건가? [5] | 겜방 | 2004.10.20 |
MySQL의 패턴 매칭 맛보기 [2] | 손상모 | 2004.10.19 |
그래프 만들어주는 소스 [10] | 미친개 | 2004.10.15 |
윈도우XP 서비스팩2 사용자인지 아닌지 판별하기
[22]
![]() | 天高馬肥[쉬드] | 2004.10.09 |
echo 안에 더블쿼테이션을 사용하기 [15] | 토토루 | 2004.10.05 |
trim 과 addslashes를 일괄처리하는 함수 [7] | BigStone | 2004.10.02 |
'' -> ""로 만들기(?) [2] | 플로렐라 | 2004.09.17 |
crontab 실제 사용 예제, 온라인 웹 게임 운영하기 (팁 + 오픈 소스 게임 소개 ^^;) [1] | 박용구 | 2004.09.14 |
날씨별로 다양한 말이나 음악 보여주기[수정] [4] | 로크 | 2004.09.13 |
-긴급소스 수정본- winamp 방송정보 알아내기
![]() | 이승원 | 2004.09.11 |
랜덤으로 파일 가져와서 재생하고, 끝나면 다른 랜덤파일 또 재생하기.. | 겜방 | 2004.09.10 |
썸네일 생성시 unsharp mask활용할수 있는 팁..소스
![]() | 앗싸~~ 곰세마리 | 2004.09.06 |
Echo 여러번호출? 할때 깜빡임 없애기
[5]
![]() | 신희돈 | 2004.09.03 |
서브디렉토리,파일까지 모두 삭제하는 함수. [5] | Lepas | 2004.08.24 |
대략 압박.. 수고하셨어요