迷城网络 - 专注于中小企业Linux运维服务

当前位置: 迷城网络 > 建站程序 >

织梦图集模型采集时修改下载图片的名称的方法

时间:2019-03-27 10:51来源: 作者: 点击:
正则表达式这个词,搞网站的多多少少会接触一些,具体的概念什么的,就放到第二段去了。织梦无忧网只是对一些常用的PHP正则表达式做一个整理,以后进行表单验证、字符串查找什
今天来谈一谈图片的闲事儿,大家都知道,织梦的采集功能很强大,我们也做过很多的论述,今天不在这里一一列举了,估计大家最烦的就是采集图片的名称问题了,太长了,而且和织梦默认的图片命名规则不一致,今天我们就来修改一下,让采集下来的图片更像手工添加的图片:大家在include文件夹下面的dedecollection.class
    /**
     *  获得下载媒体的随机名称
     *
     * @access    public
     * @param     string  $url  地址
     * @param     string  $v  值
     * @return    string
     */
    function GetRndName($url, $v)
    {
        global $cfg_image_dir,$cfg_dir_purview;
        $this->mediaCount++;
        $mnum = $this->mediaCount;
        $timedir = "140805";
        //存放路径
        $fullurl = preg_replace("#\/{1,}#", "/", $cfg_image_dir."/");
        if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
        {
            MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview);
        }

        $fullurl = $fullurl.$timedir."/";
        if(!is_dir($GLOBALS['cfg_basedir']."/$fullurl"))
        {
            MkdirAll($GLOBALS['cfg_basedir']."/$fullurl", $cfg_dir_purview);
        }

        //文件名称
        $timename = str_replace('.','', ExecTime());
        $threadnum = 0;
        if(isset($_GET['threadnum']))
        {
            $threadnum = intval($_GET['threadnum']);
        }
        $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999));

        //分配扩展名
        $urls = explode('.',$url);
        if($v=='img')
        {
            $shortname = '.jpg';
            if(preg_match("#\.gif$#i", $url))
            {
                $shortname = '.gif';
            }
            else if(preg_match("#\.png$#i", $url))
            {
                $shortname = '.png';
            }
        }
        else if($v=='embed')
        {
            $shortname = '.swf';
        }
        else
        {
            $shortname = '';
        }
        $fullname = $fullurl.$filename.$shortname;
        return preg_replace("#\/{1,}#", "/", $fullname);
    }
这段代码就是织梦默认采集下载附件的命名代码,里面有一句:
        $filename = dd2char($timename.$threadnum.'-'.$mnum.mt_rand(1000,9999));
修改为:
        $filename = dd2char('1-'.$timename.$threadnum);
然后打开后台的采集功能,就可以实现了。不过还一个问题,就是添加图片的缩略图后缀是"-ip",而采集下来的图片后缀是"-lit",这个地方我们同样可以修改,在相同文件之中查找:
        //生成缩略图
        if($mtype=='img' && !$islitpic && $this->breImage=='')
        {
            $this->breImage = $filename;
            if(!preg_match("#^http:\/\/#", $this->breImage) && file_exists($GLOBALS['cfg_basedir'].$filename))
            {
                $filenames = explode('/',$filename);
                $filenamed = $filenames[count($filenames)-1];
                $nfilename = str_replace('.','_lit.',$filenamed);
                $nfilename = str_replace($filenamed,$nfilename,$filename);
                if(@copy($GLOBALS['cfg_basedir'].$filename, $GLOBALS['cfg_basedir'].$nfilename))
                {
                    ImageResize($GLOBALS['cfg_basedir'].$nfilename,$GLOBALS['cfg_ddimg_width'],$GLOBALS['cfg_ddimg_height']);
                    $this->breImage = $nfilename;
                }
            }
        }
        if($mtype=='img' && !$islitpic)
        {
            @WaterImg($GLOBALS['cfg_basedir'].$filename,'collect');
        }
        return $filename;
    }
将里面的
                $nfilename = str_replace('.','_lit.',$filenamed);
看到没有,将里面的"_lit"修改成你自己喜欢的后缀就可以,最好是"-lp"和官方默认的一致。


(责任编辑:迷城网络科技)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容