웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->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;
}
제목 | 글쓴이 | 날짜 |
---|---|---|
윈도우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 |
4. include, require 그리고 뽀나쓰~ [8] | 티다 | 2004.08.19 |
공유 메모리 제어에 관한 함수 정리 (공유메모리) [5] | Simsim | 2004.08.16 |
접속자 IP 주소 텍스트로 저장 [7] | 천상원 | 2004.08.15 |
PHP프로그램에 간단한 인증(로그인) 걸기. [15] | Lepas | 2004.08.09 |
파일업로드시 파일명 중복되지 않게 저장하기... [6] | 김지호 | 2004.08.06 |
ISO 3166 국가코드로인한, 국가 검출소스 [4] | kein23 | 2004.08.04 |
IP 뒤에 두칸 글자 길이에 따라서 *로 나타내기 [13] | Sy-Tgt(stargt) | 2004.07.30 |
php로 이미지를 mysql디비 저장하고 보여주는 소스 [2] | QQQ | 2004.07.30 |
디비내용을 엑셀,워드,파워포인트 파일로 다운로드 시키는 방법 [13] | QQQ | 2004.07.30 |
대략 압박.. 수고하셨어요