收藏本页|设为主页|RSS
LOGO

我就上乐乐吧

PHP短地址生成算法再补充技术杂萃 苦逼码农的点点滴滴,请多多指教!我就上乐乐吧资源的世界,资源的海洋,收集各类资源,以无LOGO原汁原味为主!欢迎大家交流。智者乐山,仁者乐水,独乐乐,不如众乐乐,乐山,乐水,乐天,乐地,乐乐吧,乐于...

您当前的位置:首页»技术杂萃
全站公告
重要提示!

本站收集各类美图,以无LOGO原汁原味图为主!欢迎大家交流。
怕失联,请认准如下地址:
微博:http://weibo.com/237h
微信:SuperBeautylove
轻博客:http://www593668com.lofter.com/
花瓣:http://huaban.com/sinsunson
Q群号:231151757
网站:http://www.593668.com
文件解压密码:593668.com
去广告插件adblock plus安装参考:网盘下载帮助点击
网盘下载帮助请参看:网盘下载帮助点击
热心赞助

站内搜索
 
相关文章
热门文章
热搜词组
文章归档
友情链接
    PHP短地址生成算法再补充

    发布日期:2019-05-13  关键词:PHP

    之前两篇文章,已经谈及使用MD5及CRC32来创建唯一短趾,有兴趣者可站内参看《PHP短地址生成算法》和《PHP短地址生成算法补充》。现在还有另一种更省心省事的办法,原理大概如下:

    1)接收一个长网址记录,跟数据库中记录比较,如果已有,直接返回主键ID[自增长]。
    2)没有,就插入数据库,再获取该条记录的自增ID返回。
    3)拿到这个主键ID后,将其转换成62进制,再拼接网址。如:http://593668.com/xyz
    4)用静态将相应的参数映射下,当用户访问到http://593668.com/xyz时,提取短网址xyz。
    5)将这个短网址再转换为10进制,就可以得到自增主键ID号。
    6)使用该ID号查询该记录,取到相应原始地址,再进行业务逻辑处理(比如跳转等)。

    <?php
    $dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    function from_ten($num){
        global $dict;
        $ret = '';
        do {
            $ret = $dict[bcmod($num, strlen($dict))] . $ret;
            $num = bcdiv($num, strlen($dict));
        } while ($num > 0);
        return $ret;
    }

    function to_ten($num){
        global $dict;
        $num = strval($num);
        $len = strlen($num);
        $dec = 0;
        for ($i = 0; $i < $len; $i++) {
            $pos = strpos($dict, $num[$i]);
            $dec = bcadd(bcmul(bcpow(strlen($dict), $len - $i - 1), $pos), $dec);
        }
        return $dec;
    }

    echo "xyz=>".to_ten("xyz")."<br />";
    echo "593668=>".from_ten("593668")."<br />";
    ?>

    执行结果:

    PHP短地址生成算法再补充,PHP,技术杂萃

    嗯,有了这个基础,接下来该怎么办就不用多说了,大家直接自行发挥吧。
    猜您喜欢:
    Q群:231151757微信:superimagelove官网:www.593668.com