없는 게시물 파일 일괄삭제 질문 입니다.
본문
<?php
$sub_menu = '100920';
include_once('./_common.php');
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.', G5_URL);
$g5['title'] = '없는 게시물 파일 일괄삭제';
include_once('./admin.head.php');
?>
<div class="local_desc01 local_desc">
<p>
완료 메세지가 나오기 전에 프로그램의 실행을 중지하지 마십시오.
</p>
</div>
<?php
$directory = array();
$dl = array('file', 'file2');
foreach($dl as $val) {
$dir = G5_DATA_PATH.'/'.$val;
if(!is_dir($dir)) continue;
if($handle = opendir($dir)) {
while(false !== ($entry = readdir($handle))) {
if($entry == '.' || $entry == '..')
continue;
$path = G5_DATA_PATH.'/'.$val.'/'.$entry;
if(is_dir($path))
$directory[] = $path;
}
}
}
flush();
if (empty($directory)) {
echo '<p>디렉토리를 열지못했습니다.</p>';
}
$cnt=0;
echo '<ul>'.PHP_EOL;
foreach($directory as $dir) {
$files = glob($dir);
$dirs = explode('/', $dir);
if ( $dirs[count($dirs)-1] == "lost+found" || $dirs[count($dirs)-1] == "file_name" || $dirs[count($dirs)-1] == "lost+found" ) {
continue;
}
// echo '<li>'.$dir.'</li>'.PHP_EOL;
if (is_dir($dir)) {
// 핸들 획득
$handle = opendir($dir);
while(false !== ($filename = readdir($handle))) {
if($filename == "." || $filename == ".." || $filename == "index.php"){
continue;
}
$sql = "SELECT count(*) as cnt FROM ".$g5[write_prefix].$dirs[count($dirs)-1]." WHERE wr_content LIKE '%$filename%'";
$ret = sql_fetch($sql);
$ct = $ret['cnt'];
$sql2 = "SELECT count(*) as cnt FROM g5_board_file WHERE bf_file = '$filename'";
$ret2 = sql_fetch($sql2);
$ct += $ret2['cnt'];
if( !$ct ) {
$cnt++;
echo '<li> filename : '.$dir.'/'.$filename.' : '.$ct.'</li>'.PHP_EOL;
@unlink($dir.'/'.$filename);
}
flush();
if ($cnt%10000==0) {
echo PHP_EOL;
break;
}
}
// 핸들 해제
closedir($handle);
}
}
echo '<li>완료됨</li></ul>'.PHP_EOL;
echo '<div class="local_desc01 local_desc"><p><strong>파일 '.$cnt.'건의 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>'.PHP_EOL;
?>
<?php
include_once('./admin.tail.php');
?>
게시물을 삭제하고 실행을 하면 분명 data/file/폴더 안에 삭제해당 파일이 남아있는데
지우지를 못하네요..어디부분을 수정을 하고 보안을 해야할지 고수님들 좀 알려주세요
!-->
답변을 작성하시기 전에 로그인 해주세요.