⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sys_cache_up.php

📁 这是matlab的一个小程序
💻 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 + -