📄 sys_cache_up.php
字号:
<?php
require_once(dirname(__FILE__)."/config.php");
CheckPurview('sys_ArcBatch');
if(empty($dopost))
{
$dopost = '';
}
if(empty($step))
{
$step = 1;
}
if($dopost=="ok")
{
if(empty($uparc))
{
$uparc = 0;
}
if($step==-1)
{
if($uparc==0)
{
sleep(1);
}
ShowMsg("成功更新所有缓存!","javascript:;");
exit();
}
//更新栏目缓存
else if($step==1)
{
UpDateCatCache();
ShowMsg("成功更新栏目缓存,准备更新枚举缓存...","sys_cache_up.php?dopost=ok&step=2&uparc=$uparc");
exit();
}
//更新枚举缓存
else if($step==2)
{
include_once(DEDEINC."/enums.func.php");
WriteEnumsCache();
WriteAreaCache();
ShowMsg("成功更新枚举缓存,准备更新调用缓存...","sys_cache_up.php?dopost=ok&step=3&uparc=$uparc");
exit();
}
//清理arclist调用缓存、过期会员访问历史、过期短信
else if($step==3)
{
echo '<meta http-equiv="Content-Type" content="text/html; charset='.$cfg_soft_lang.'">';
$dsql->ExecuteNoneQuery("Delete From `#@__arccache`");
echo "\n成功更新arclist调用缓存,准备清理过期会员访问历史...<hr />";
$oldtime = time() - (90 * 24 * 3600);
$dsql->ExecuteNoneQuery("Delete From `#@__member_vhistory` where vtime<'$oldtime' ");
echo "成功清理过期会员访问历史,准备清理过期短信...<hr />";
$dsql->ExecuteNoneQuery("Delete From `#@__member_pms` where sendtime<'$oldtime' ");
echo "成功清理过期短信,准备修正错误文档,这可能要占较长的时间...";
if($uparc==1)
{
echo "<script language='javascript'>location='sys_cache_up.php?dopost=ok&step=9';</script>";
}
else
{
echo "<script language='javascript'>location='sys_cache_up.php?dopost=ok&step=-1&uparc=$uparc';</script>";
}
exit();
}
//修正错误文档
else if($step==9)
{
$pagesize = 500;
if(empty($pageno))
{
$pageno=1;
sleep(1);
}
if(empty($e))
{
$e = 0;
}
$limitpos = ($pageno-1) * $pagesize;
//读取频道和栏目信息
$typeids = array();
$dsql->SetQuery("Select id From `#@__arctype` where ispart<2 ");
$dsql->Execute();
while($row = $dsql->GetArray())
{
$typeids[] = $row['id'];
}
$iquery = "Select arc.id,arc.typeid,ch.issystem,ch.maintable,ch.addtable From `#@__arctiny` arc
left join `#@__arctype` tp on tp.id=arc.typeid
left join `#@__channeltype` ch on ch.id=tp.channeltype
order by arc.id asc limit $limitpos,$pagesize";
$dsql->SetQuery($iquery);
$dsql->Execute();
$n = 0;
while($row = $dsql->GetArray())
{
$n++;
$maintable = (trim($row['maintable'])=='' ? '#@__archives' : trim($row['maintable']));
$addtable = trim($row['addtable']);
$id = $row['id'];
if(!in_array($row['typeid'],$typeids))
{
$e++;
$dsql->ExecuteNoneQuery(" Delete From `#@__arctiny` where id='{$id}' limit 1");
$dsql->ExecuteNoneQuery(" Delete From `$maintable` where id='{$id}' limit 1 ");
$dsql->ExecuteNoneQuery(" Delete From `$addtable` where aid='{$id}' limit 1 ");
}
else
{
if($row['issystem']==-1)
{
$nrow = $dsql->GetOne("Select aid From `$addtable` where aid='{$id}' ");
if(!is_array($nrow))
{
$e++;
$dsql->ExecuteNoneQuery(" Delete From `#@__arctiny` where id='{$id}' limit 1 ");
$dsql->ExecuteNoneQuery(" Delete From `$maintable` where id='{$id}' limit 1 ");
}
}
else
{
$nrow = $dsql->GetOne("Select arc.id,addon.aid From `$maintable` arc left join `$addtable` addon on addon.aid=arc.id where arc.id='{$id}' ");
if(empty($nrow['id']) || empty($nrow['aid']))
{
$e++;
$dsql->ExecuteNoneQuery(" Delete From `#@__arctiny` where id='{$id}' limit 1 ");
$dsql->ExecuteNoneQuery(" Delete From `$maintable` where id='{$id}' limit 1 ");
$dsql->ExecuteNoneQuery(" Delete From `$addtable` where aid='{$id}' limit 1 ");
}
}
}
}
if($n==0)
{
ShowMsg('成功清除所有错误文档...','sys_cache_up.php?dopost=ok&step=-1&uparc=1');
exit();
}
$pageno++;
ShowMsg("已处理到 id: {$id},共发现错误文档:{$e} 个,继续清理索引错误的文档...","sys_cache_up.php?dopost=ok&step=9&pageno=$pageno&e=$e",0,1000);
exit();
}
}
include DedeInclude('templets/sys_cache_up.htm');
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -