delete_garbage.php
来自「通达OA2007SE源代码 非常好的」· PHP 代码 · 共 287 行
PHP
287 行
<?
function delete_children ($SORT_PARENT)
{
global $ROW_COUNT;
global $SPACE_COUNT;
global $connection;
$query = ((''.'select * from FILE_CONTENT where SORT_ID=').$SORT_PARENT);
$cursor1 = exequery ($connection, $query);
while ($ROW1 = mysql_fetch_array ($cursor1))
{
++$ROW_COUNT;
$ATTACHMENT_ID = $ROW1['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW1['ATTACHMENT_NAME'];
$ATTACHMENT_ID_ARRAY = explode (',', $ATTACHMENT_ID);
$ATTACHMENT_NAME_ARRAY = explode ('*', $ATTACHMENT_NAME);
$ARRAY_COUNT = sizeof ($ATTACHMENT_ID_ARRAY);
for ($I = 0; ($I < ($ARRAY_COUNT - 1)); ++$I)
{
($SPACE_COUNT += attach_size ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]));
delete_attach ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]);
}
}
$query = ((''.'delete from FILE_CONTENT where SORT_ID=').$SORT_PARENT);
exequery ($connection, $query);
$query = ((''.'select * from FILE_SORT where SORT_PARENT=').$SORT_PARENT);
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
++$ROW_COUNT;
$SORT_ID = $ROW['SORT_ID'];
delete_children ($SORT_ID);
}
$query = ((''.'delete from FILE_SORT where SORT_ID=').$SORT_PARENT);
exequery ($connection, $query);
}
include_once 'inc/auth.php';
include_once 'inc/utility_all.php';
echo '
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body class="bodycolor" topmargin="5">
';
$query = 'select * from USER order by USER_ID';
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
($USER_ID_STR .= ($ROW['USER_ID'].','));
}
$USER_ID_STR = substr ($USER_ID_STR, 0, -1);
$ROW_COUNT = $SPACE_COUNT = 0;
$query = (((''.'delete from ADDRESS where USER_ID!=\'\' and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from ADDRESS_GROUP where USER_ID!=\'\' and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from AFFAIR where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from CALENDAR where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from DIARY where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from EMAIL_BOX where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$BODY_ID_STR = '';
$query = (((''.'select * from EMAIL where (DELETE_FLAG=\'2\' or DELETE_FLAG=\'4\') and not find_in_set(TO_ID,\'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
$BODY_ID = $ROW['BODY_ID'];
$query1 = ((''.'select count(*) from EMAIL where BODY_ID=').$BODY_ID);
$cursor1 = exequery ($connection, $query1);
if ($ROW = mysql_fetch_array ($cursor1))
{
$GROUP_COUNT = $ROW[0];
}
if (($GROUP_COUNT <= 1))
{
$query = ((''.'select * from EMAIL_BODY where BODY_ID=').$BODY_ID);
$cursor = exequery ($connection, $query);
if ($ROW = mysql_fetch_array ($cursor))
{
$ATTACHMENT_ID = $ROW['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW['ATTACHMENT_NAME'];
}
if (($ATTACHMENT_NAME != ''))
{
delete_attach ($ATTACHMENT_ID, $ATTACHMENT_NAME);
}
($BODY_ID_STR .= ($BODY_ID.','));
continue;
}
}
$query = (((''.'delete from EMAIL_BODY where find_in_set(BODY_ID,\'').$BODY_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from EMAIL where (DELETE_FLAG=\'2\' or DELETE_FLAG=\'4\') and not find_in_set(TO_ID,\'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'update EMAIL set DELETE_FLAG=\'1\' where (DELETE_FLAG=\'3\' or DELETE_FLAG=\'\' or DELETE_FLAG=\'0\') and not find_in_set(TO_ID,\'').$USER_ID_STR).'\')');
exequery ($connection, $query);
$query = (((''.'select * from EMAIL,EMAIL_BODY where EMAIL.BODY_ID=EMAIL_BODY.BODY_ID and (DELETE_FLAG=\'1\' or READ_FLAG!=\'1\') and not find_in_set(FROM_ID,\'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
$EMAIL_ID = $ROW['EMAIL_ID'];
$BODY_ID = $ROW['BODY_ID'];
$SUBJECT = $ROW['SUBJECT'];
$FROM_ID = $ROW['FROM_ID'];
$TO_ID = $ROW['TO_ID'];
$READ_FLAG = $ROW['READ_FLAG'];
$DELETE_FLAG = $ROW['DELETE_FLAG'];
$ATTACHMENT_ID = $ROW['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW['ATTACHMENT_NAME'];
$query1 = ((''.'select count(*) from EMAIL where BODY_ID=').$BODY_ID);
$cursor1 = exequery ($connection, $query1);
if ($ROW = mysql_fetch_array ($cursor1))
{
$GROUP_COUNT = $ROW[0];
}
if (($GROUP_COUNT <= 1))
{
if (($ATTACHMENT_NAME != ''))
{
delete_attach ($ATTACHMENT_ID, $ATTACHMENT_NAME);
}
($BODY_ID_STR .= ($BODY_ID.','));
}
if (($READ_FLAG == '0'))
{
$SMS_CONTENT = ('请查收我的邮件!
主题:'.csubstr ($SUBJECT, 0, 100));
$query = (((((((''.'delete from SMS where SMS_TYPE=\'2\' and FROM_ID=\'').$FROM_ID).'\' and TO_ID=\'').$TO_ID).'\' and CONTENT=\'').$SMS_CONTENT).'\'');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
}
($EMAIL_ID_STR .= ($EMAIL_ID.','));
}
$query = (((''.'delete from EMAIL where find_in_set(EMAIL_ID,\'').$EMAIL_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'delete from EMAIL_BODY where find_in_set(BODY_ID,\'').$BODY_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'update EMAIL,EMAIL_BODY set DELETE_FLAG=\'2\' where EMAIL.BODY_ID=EMAIL_BODY.BODY_ID and (DELETE_FLAG=\'\' or DELETE_FLAG=\'0\') and READ_FLAG=\'1\' and not find_in_set(FROM_ID,\'').$USER_ID_STR).'\')');
exequery ($connection, $query);
$query = (((''.'update EMAIL,EMAIL_BODY set DELETE_FLAG=\'4\' where EMAIL.BODY_ID=EMAIL_BODY.BODY_ID and DELETE_FLAG=\'3\' and READ_FLAG=\'1\' and not find_in_set(FROM_ID,\'').$USER_ID_STR).'\')');
exequery ($connection, $query);
$query = 'delete from EMAIL where BODY_ID=0 or TO_ID=\'\'';
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$BODY_ID_STR = '';
$query = 'select * from EMAIL_BODY left join EMAIL on EMAIL.BODY_ID = EMAIL_BODY.BODY_ID where EMAIL_ID is null';
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
($BODY_ID_STR .= ($ROW['BODY_ID'].','));
$ATTACHMENT_ID = $ROW['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW['ATTACHMENT_NAME'];
delete_attach ($ATTACHMENT_ID, $ATTACHMENT_NAME);
}
$query = (((''.'delete from EMAIL_BODY where find_in_set(BODY_ID,\'').$BODY_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$query = (((''.'select * from FILE_SORT where SORT_TYPE=\'4\' and SORT_PARENT=0 and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
while ($ROW = mysql_fetch_array ($cursor))
{
++$ROW_COUNT;
$SORT_ID = $ROW['SORT_ID'];
delete_children ($SORT_ID);
}
$query = (((''.'delete from FILE_SORT where SORT_TYPE=\'4\' and SORT_PARENT=0 and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
$query = (((''.'select * from FILE_CONTENT where SORT_ID=0 and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
while ($ROW1 = mysql_fetch_array ($cursor))
{
++$ROW_COUNT;
$ATTACHMENT_ID = $ROW1['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW1['ATTACHMENT_NAME'];
$ATTACHMENT_ID_ARRAY = explode (',', $ATTACHMENT_ID);
$ATTACHMENT_NAME_ARRAY = explode ('*', $ATTACHMENT_NAME);
$ARRAY_COUNT = sizeof ($ATTACHMENT_ID_ARRAY);
for ($I = 0; ($I < ($ARRAY_COUNT - 1)); ++$I)
{
($SPACE_COUNT += attach_size ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]));
delete_attach ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]);
}
}
$query = (((''.'delete from FILE_CONTENT where SORT_ID=0 and not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
$query = (((''.'select * from HRMS where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
while ($ROW1 = mysql_fetch_array ($cursor))
{
++$ROW_COUNT;
$PHOTO = $ROW1['PHOTO'];
$PHOTO = (($ATTACH_PATH.'hrms_pic/').$PHOTO);
echo $PHOTO;
if ((file_exists ($PHOTO) AND is_file ($PHOTO)))
{
unlink ($PHOTO);
}
$ATTACHMENT_ID = $ROW1['ATTACHMENT_ID'];
$ATTACHMENT_NAME = $ROW1['ATTACHMENT_NAME'];
$ATTACHMENT_ID_ARRAY = explode (',', $ATTACHMENT_ID);
$ATTACHMENT_NAME_ARRAY = explode ('*', $ATTACHMENT_NAME);
$ARRAY_COUNT = sizeof ($ATTACHMENT_ID_ARRAY);
for ($I = 0; ($I < ($ARRAY_COUNT - 1)); ++$I)
{
($SPACE_COUNT += attach_size ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]));
delete_attach ($ATTACHMENT_ID_ARRAY[$I], $ATTACHMENT_NAME_ARRAY[$I]);
}
}
$query = (((''.'delete from HRMS where not FIND_IN_SET(USER_ID, \'').$USER_ID_STR).'\')');
$cursor = exequery ($connection, $query);
$query = (((''.'delete from URL where USER!=\'\' and not FIND_IN_SET(USER, \'').$USER_ID_STR).'\')');
exequery ($connection, $query);
($ROW_COUNT += mysql_affected_rows ());
$FOLDER_COUNT = 0;
$MODULE_ARRAY = scandir ($ATTACH_PATH2);
for ($I = 0; ($I < count ($MODULE_ARRAY)); ++$I)
{
$CUR_PATH = (($ATTACH_PATH2.'/').$MODULE_ARRAY[$I]);
if (((($MODULE_ARRAY[$I] == '.') OR ($MODULE_ARRAY[$I] == '..')) OR !is_dir ($CUR_PATH)))
{
continue;
}
else
{
$YM_ARRAY = scandir ($CUR_PATH);
for ($J = 0; ($J < count ($YM_ARRAY)); ++$J)
{
$CUR_PATH = (((($ATTACH_PATH2.'/').$MODULE_ARRAY[$I]).'/').$YM_ARRAY[$J]);
if (((($YM_ARRAY[$J] == '.') OR ($YM_ARRAY[$J] == '..')) OR !is_dir ($CUR_PATH)))
{
continue;
}
else
{
$FILE_COUNT = 0;
$FILE_ARRAY = scandir ($CUR_PATH);
for ($K = 0; ($K < count ($FILE_ARRAY)); ++$K)
{
$CUR_PATH = (((((($ATTACH_PATH2.'/').$MODULE_ARRAY[$I]).'/').$YM_ARRAY[$J]).'/').$FILE_ARRAY[$K]);
if (!is_file ($CUR_PATH))
{
continue;
}
else
{
++$FILE_COUNT;
continue;
}
}
if (($FILE_COUNT == 0))
{
rmdir ($CUR_PATH);
++$FOLDER_COUNT;
continue;
}
continue;
}
}
continue;
}
}
$ROW_COUNT = number_format ($ROW_COUNT, 0, '.', ',');
$SPACE_COUNT = number_format ((($SPACE_COUNT / 1024) / 1024), 2, '.', ',');
$REMARK = (((((((''.'删除空目录:').$FOLDER_COUNT).' 个<br>删除数据库记录:').$ROW_COUNT).' 条<br>回收硬盘空间:').$SPACE_COUNT).' MB');
add_log (12, (((''.'系统垃圾清理[').$REMARK).']'), $LOGIN_USER_ID);
message ('提示', $REMARK);
button_back ();
echo '
</body>
</html>
';
?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?