2022-05-02 22:31:35 +08:00
< ? php
/*
* 计划任务脚本 定期清理 缓存数据
* @ copyright QiaoQiaoShiDai Internet Technology ( Shanghai ) Co . , Ltd
* @ license https :// www . oaooa . com / licenses /
*
* @ link https :// www . oaooa . com
* @ author zyx ( zyx @ oaooa . com )
*/
if ( ! defined ( 'IN_OAOOA' )) {
exit ( 'Access Denied' );
}
//清空临时缓存区
removedir ( $_G [ 'setting' ][ 'attachdir' ] . 'temp/' , true );
//清空临时缓存区
$time = 60 * 60 * 1 ; //7天 七天没有修改的将被删除;
removedir ( $_G [ 'setting' ][ 'attachdir' ] . 'cache/' , true , $time );
//清理上传未成功的文件
$like = '%dzz_upload_%' ;
$like1 = '%FTP_upload_%' ;
foreach ( DB :: fetch_all ( " select * from %t where (cachekey like %s or cachekey like %s) and dateline<%d " , array ( 'cache' , $like , $like1 , TIMESTAMP - 24 * 60 * 60 )) as $value ){
@ unlink ( $_G [ 'setting' ][ 'attachdir' ] . $value [ 'cachevalue' ]);
C :: t ( 'cache' ) -> delete ( $value [ 'cachekey' ]);
}
function removedir ( $dirname , $keepdir = FALSE , $time = 0 ) {
$dirname = str_replace ( array ( " \n " , " \r " , '..' ), array ( '' , '' , '' ), $dirname );
if ( ! is_dir ( $dirname )) {
return FALSE ;
}
$handle = opendir ( $dirname );
while (( $file = readdir ( $handle )) !== FALSE ) {
if ( $file != '.' && $file != '..' ) {
$dir = $dirname . DIRECTORY_SEPARATOR . $file ;
$mtime = filemtime ( $dir );
is_dir ( $dir ) ? removedir ( $dir ) : ((( TIMESTAMP - $mtime ) > $time ) ? unlink ( $dir ) : '' );
}
}
closedir ( $handle );
return ! $keepdir ? ( @ rmdir ( $dirname ) ? TRUE : FALSE ) : TRUE ;
}
?>