找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 125|回复: 0

[cms教程] dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)

[复制链接]

该用户从未签到

发表于 2021-2-20 08:57:58 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
具体的实现代码,如下:下面会给简单的说明。
         
        代码如下:
       
        /*
        1. 配置好你的数据库连接
        2. 注意数据表名的前缀 默认为dede_
        3. 一定要先备份你的数据库 或备份dede_archives表 如产生损失本人概不负责
        */
        //数据库连接设置
        $ip = "localhost"; //地址
        $user = "adminbuycn"; //用户名
        $pw = "www."; //密码
        $db = "adminbuycn"; //表名
        $conn=mysql_connect ($ip]$user,$pw);
        mysql_select_db($db);
        mysql_query("set names gbk"); //设置编码为 GBK
         
         
        //开始!获取body数据
        function body($id){
        $exec="select * from dede_addonsoft where aid = '".$id."'";
        $result=mysql_query($exec);
        $rs=mysql_fetch_object($result);
        $id = $rs->introduce ;
        return $id =$id ;
        }
        //结束!获取body数据
         
        //开始!提取变量中第一个图片地址
        function bodyimg($obj) {
         
        if(isset($obj)){
        if ( preg_match( "
[img][/img]
", $obj, $regs ) ) { //使用获取第一幅图像地址
        return $obj = $regs[1, ;
        } else {
        echo "Erro:没有图片地址!
";
        return $obj = 1 ;
        }
        }
         
        }
        //结束!提取变量中第一个图片地址
         
        //开始 修改rchives,插入获取的图像地址
        function changearchives($pic,$id) {
        $sql="UPDATE `dede_archives`
        SET `litpic` = '".$pic."'
        WHERE `id` = '".$id."'";
        $result=mysql_query($sql);
        if($result==1) echo "修改数据成功!
";
        else echo "修改数据失败!
";
        }
        //结束 修改rchives,插入获取的图像地址
         
        //显示数据表内容
        $exec="select * from dede_archives where typeid in(494,495,496,497,498,499,500]501,502,503,504,374,375,376,377,378,379,488) and litpic = ''"; //channel='1' 即文章频道 也可以使用typeid=''
        $result=mysql_query($exec); //指定栏目ID但只能是最小分类的ID, litpic = '' 意为缩略图地址为空
        while($rs=mysql_fetch_object($result))
        {
         
        $id = $rs->ID;
        echo $id." ";
        $body = body($id); //调用函数获取 body内容
        $pic = bodyimg($body); //调用函数获取 body里面的第一张图片地址
        if ($pic1){
        changearchives($pic,$id); //调用函数插入获取的地址
        }
        }
        mysql_close($conn);
        ?>
         
        我也是刚刚学PHP 上面的代码也是东拼西凑起来的 做了详细的注释 初学者也可以来看看
         
        因为上面的代码不能自动的获取下一级目录,所以比较手工添加目录id,常用的语句有。
        $exec="select * from dede_archives where typeid in(1,2,3) and litpic = ''"; //channel='1' 即文章频道 也可以使用typeid=''
        上面的代码是获取typeid为 1和2和3的数据。
        如果执行修改一个id可以用下面的语句
        $exec="select * from dede_archives where typeid='1' and litpic = ''";
        如果是频道的可以用
        $exec="select * from dede_archives where channel='1' and litpic = ''";
        注意先备份,要不就不要随便测试了,注意是 dedecms5.1的版本,其它的版本应该也适应。多测试(备份的前提下。)
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-10-9 13:26

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表