递归删除dedecms多余附件
2012-12-21 12:48 来源:www.chinab4c.com 作者:dedecms专家
递归删除dedecms多余附件,这个方式我们可以通过php递归调用读取,然后去dede_addsoft表里面匹配。如果该文件名不存在,我们就直接删除。因为在dedecms里面。删除某个文件的时候,他的附件是没删除的。这样就给dedecms的附件管理带来很大困难。
set_time_limit(0);
header('Content-Type: text/html; charset=utf-8');
require_once (dirname(__FILE__) . "/include/common.inc.php");
echo "开始处理文件,请稍后。。。。。<br>";
scan_all("./uploads/fjjian");
function scan_all($dir) {
global $dsql;
$stack[] = $dir;
while ($stack) {
$thisdir = array_pop($stack);
if ($dircont = scandir($thisdir)) {
$i=0;
while (isset($dircont[$i])) {
if ($dircont[$i] !== '.' && $dircont[$i] !== '..' && $dircont[$i] !=='temp' && $dircont[$i] !=='.svn') {
$current_file = "{$thisdir}/{$dircont[$i]}";
if (is_file($current_file)) {
$file = iconv("GB2312","UTF-8","$thisdir/$dircont[$i]");
if(!is_dir($file)){
$file = substr($file,1);
$sql = "select aid from elecfans_addonsoft where softlinks like '%".$file."%'";
// echo $sql;echo "<br>";
$row = $dsql->GetOne($sql);
if(empty($row)){
del_file('.'.$file);
$hand = fopen("del_log.txt","a+");
fwrite($hand,"delete:".$file."\r\n");
fclose($hand);
}else{
//文件名称md5
$dsql->ExecuteNoneQuery(" update elecfans_addonsoft set file_md5 ='".md5($file)."' where aid='".$row['aid']."'");
}
}
} elseif (is_dir($current_file)) {
if(!is_dir){
$file = iconv("GB2312","UTF-8","$thisdir/$dircont[$i]");
$file = substr($file,1);
$sql = "select aid from elecfans_addonsoft where softlinks like '%".$file."%'";
$row = $dsql->GetOne($sql); echo $sql;echo "<br>";
if(empty($row)){
del_file('.'.$file);
$hand = fopen("del_log.txt","a+");
fwrite($hand,"delete:".$file."\r\n");
fclose($hand);
}else{
//文件名称md5
$dsql->ExecuteNoneQuery(" update elecfans_addonsoft set file_md5 ='".md5($file)."' where aid='".$row['aid']."'");
}
}
$stack[] = $current_file;
}
}
$i++;
}
}
}
}
function del_file($path =''){
if(!empty($path)){
$path = iconv("UTF-8","GB2312",$path);
@unlink($path);
}
}
以上就是本人总结的递归删除dedecms多余附件方式。
相关文章:xunsearch做dedecms搜索
来源:http://www.chinab4c.com
最近更新
常用插件
- ecshop二次开发首页显示购
ecshop二次开发首页显示购买记录插件,用图文的方式,来处理在首页显示...
- ecshop二次开发直接优惠现
ecshop二次开发促销售功能插件,主要是扩展了ecshop促销功能,增加了更...
- ecsho成本利润统计分析插件
最近在二次开发ecshop过程中,很多朋友要求一款分析 ecshop成本和利润插...
- ecshop 匿名下单自动注册会
ecshop 匿名下单自动注册会员...
- ecshop打印快递发货单
ecshop打印快递发货单,这个问题是很常见的问题。在发货完成之后,有些...