Program(Down,Int)/(php)Web_program

ftp 상에서 파일 삭제안될때 php 파일 업로드해서 삭제하기

Font_Charisma 2008. 11. 9. 01:12
간혹 FTP상에서 디렉토리나 파일을 삭제하면 삭제되지 않고 남아있는 경우가 있다. 이때 보통 호스트 관리자에게 문의하여 삭제하는 경우가 대부분인데, 작업효율면에 있어선 참으로 많은 시간을 낭비하게 되는 셈이다.

본 파일은 php함수를 이용하여 파일을 삭제하는 경우다. 제공받는 서버환경에서 ssh를 일반 유져에게 제공한다면 문제될게 없겠지만 그렇지 않다면 이 파일은 매우 유용하다. 또한 편집기로 열어서 php공부도 할 수 있으니 1석 2조가 아닐까 싶다.

다운로드 한 파일의 압축을 풀고 FTP에 업로드 시킨 후, 웹브라우져로 출력시키면 파일삭제 유무를 물어본다. 단, 파일을 업로드 시킨 디렉토리 내의 모든 파일을 삭제할 것인지 물으므로 미리 데이터를 백업 해 두길 바란다.


<?
$directory = dirname(__FILENAME__);

//set_time_limit(300);
function RmDirR ($dirName) {
$d = dir ($dirName);
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (Is_Dir($dirName."/".$entry)) {
RmDirR($dirName."/".$entry);
echo ($dirName."/".$entry."<BR>");
} else {
if(!strstr($dirName."/".$entry,basename(__FILENAME__))) {
UnLink ($dirName."/".$entry);
}
echo ($dirName."/".$entry."<BR>");
}
}
}
$d->close();
RmDir ($dirName);
}

function checkdeldir ($dirName) {
$d = dir ($dirName);
while($entry = $d->read()) {
if ($entry != "." && $entry != "..") {
if (Is_Dir($dirName."/".$entry)) {
echo ($dirName."/".$entry."<BR>");
} else {
echo ($dirName."/".$entry."<BR>");
flush();
}
}
}
$d->close();
flush();
//checkdeldir($dirName);
}


if($run=='ok'){
RmDirR($directory);
} else {
checkdeldir($directory);
}
?>
위 파일을 삭제합니다..
<A HREF="<?=$PHP_SELF."?run=ok"?>">OK</A>

파일로 다운받기

원문 - http://blog.zhenyaspace.net/entry/FTP-상에-있는-디렉토리-및-파일이-삭제-안될-때

사이트 파일업로드 해킹후 실행하면, 바로 삭제 아주유용하면서 아주 위험하군요.