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 + -
显示快捷键?