zoukankan      html  css  js  c++  java
  • DEDE删除文章怎么同时也删除附件,DEDE删除文章同时删除附件

    简介:这是DEDE删除文章怎么同时也删除附件,DEDE删除文章同时删除附件的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=343816' scrolling='no'>

    DEDE删除文章怎么同时也删除附件,DEDE删除文章同时删除附件 - 发表于:DEDE技术吧 - Dede教程

    首先添加两个函数  Dede教程-598080707.NET

    /*
    根据文档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=([\"|\'])([^\1]*?)\.(gif|jpg|jpeg|png)\1/',$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;


    上面一行加上下面的代码  DEDE技术吧-598080707.NET

    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”类型的中的本地图片了。


    帖子信息:DEDE技术吧 | 分类:Dede教程 | 本文地址:http://598080707.net/1/52.html

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/343816.html pageNo:5
  • 相关阅读:
    图片懒加载DEMO
    手写offset函数
    DOM
    jQuery笔记
    children和 childNodes辨析
    运算符...典型的三种用处
    Python中的数据结构---栈,队列
    手写call方法
    移动零元素--leetcode题解总结
    剑指 Offer 36. 二叉搜索树与双向链表
  • 原文地址:https://www.cnblogs.com/ooooo/p/2241972.html
Copyright © 2011-2022 走看看