• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    织梦dedecms删除文章同时删除附件解决方法
    POST TIME:2018-03-15 21:44
    dedecms在删除文章时,其附件还是保留的,最好的是删除文章同时也删除相应的附件,这样节省空间,删除不必要的垃圾附件,如何解决删除文章同时删除附件呢?
     
    首先添加两个函数
     
    /*
    根据文档id获取文档的body部分
    */
    function getArcBody($arcid)
    {
    global $dsql;
    if(empty($arcid)) return ;
    $body = '';
    $query = "select arc.*,ch.addtable,ch.fieldset from `dede_arctiny` as arc left join `dede_channeltype` as ch on arc.channel=ch.id where arc.id=$arcid";
    $row = $dsql->GetOne($query);
    if(empty($row)) return ;
    $addtable = $row['addtable'];
    $fieldset = $row['fieldset'];
    include_once(DEDEINC.'./dedetag.class.php');
    $dtp = new DedeTagParse();
    $dtp->SetNameSpace('field','<','>');
    $dtp->LoadSource($fieldset);
    if(is_array($dtp->CTags))
    {
    foreach($dtp->CTags as $tid=>$tag)
    {
    if($tag->GetAtt('type')=='htmltext')
    {
    $body = $tag->GetName();
    break;
    }
    }
    }
    if(!empty($body))
    {
    $query = "select $body from `$addtable` where aid=$arcid";
    $row = $dsql->GetOne($query);
    $body = $row[$body];
    return $body;
    }
    return ;
    }
    /*
    解析文档内容的本地图片图片
    */
    function get_img_from_body($body)
    {
    $result = array();
    if(empty($body))
    return $result;
    preg_match_all('/ssrc=([&;|&;])([^]*?).(gif|jpg|jpeg|png)/',$body,$res);
    if(!empty($res[2]))
    {
    foreach($res[2] as $k=>$v)
    {
    $result[] = $v.'.'.$res[3][$k];
    }
    }
    return $result;
    }
     
    把这段代码贴到include/common.func.php后面,
    接着打开后台(假设使用默认的dede作为后台)dede/inc/inc_batchup.php文件,
    在第22行添加代码如下:
     
    $body = getArcBody($aid);
     
     
    接在在第139行,就是在
     
    return true;
     
     
    上面一行加上下面的代码
     
    if($body)
    {
    $img_arr = get_img_from_body($body);
    if(!empty($img_arr))
    {
    foreach($img_arr as $v)
    {
    $img_file = GetTruePath().str_replace($GLOBALS['cfg_basehost'],'',$v);
    if(file_exists($img_file) && !is_dir($img_file))
    @unlink($img_file);
    }
    }
    }
     
    这样就可以实现删除文档的时候删除字段为“htmltext”类型的中的本地图片了。
    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!