当前位置:首页 > 新闻资讯

帝国cms短网址原理和使用方法

发表日期:2017-01-12文章编辑:楚亿达工作室浏览次数:    

 一、使用步骤

1、将下面函数放入e/class/userfun.php文件尾部?>代码之前

function dp_dec($classid,$id){
    global $class_r;
    $tid=$class_r[$classid]['tid'];
    $in=strlen($tid).$tid.$id;
    $d=62;
    $dict=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','','x','y','z',

 '0','1','2','3','4','5','6','7','8','9',

'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
    $re='';
    do{
 $y=$in%$d;
 $re=$dict[$y].$re;
 $in=floor($in/$d);
    }while($in>0);
    return $re;
}

2、在e/class/functions.php文件中搜索[filename]==2

(1)将代码:

$filename=$class_r[$classid][filename_qz].md5(uniqid(microtime()));

前加//注释掉,或直接删掉。

(2)换成如下代码:

$filename=dp_dec($classid,$id);

3、设置要使用此功能的栏目,将 “内容页文件命名形式” 修改为 md5()


二、常见问题

1、影响以前的网址吗?

答:不影响

2、效率怎么样?

答:影响忽略不计

3、如何将老网址也换成短网址?

答:自己写批量处理老信息的代码,或者客服..

4、帝国CMS升级后怎么办?

答:按照上面说明再改一次就行了

5、编码原理是什么?

答:帝国cms的信息全局id是唯一的,编码方式为1+数据表id(5位)+信息id(10位),合计16位。我们这里针对这个编码进行了压缩。方法是:

去掉开始的1,第一位表示表id的位数,接着为表id,剩余的为信息id。

假定全局id为1 00056 0000012345,则压缩后的编码为25612345。容易证明这种编码可逆的,不会发生碰撞。

压缩编码后,转换为62进制(26个小英文字母+26个大写英文字母+10个数字为基数集)的表示,就是我们需要的短网址。

如没特殊注明,文章均为楚亿达工作室原创,转载请注明来自http://www.cydidc.com/news/cyd143.html