본문 바로가기

Program(Down,Int)/(php)Web_program

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

간혹 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-상에-있는-디렉토리-및-파일이-삭제-안될-때

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