php生成短网址的代码

php生成短网址的代码

作者:稚子 时间:2016-04-18 分类:BS架构后台语言 评论:1 条 浏览:2292

php生成短网址的原理:

1.将原网址做crc32校验,得到校验码。

2.使用sprintf(‘%u’) 将校验码转为无符号数字。

3.对无符号数字进行求余62操作(大小写字母+数字等于62位),得到余数后映射到62个字符中,将映射后的字符保存。(例如余数是10,则映射的字符是A,0-9对应0-9,10-35对应A-Z,35-62对应a-z)

4.循环操作,直到数值为0。

5.将所有映射后的字符拼接,就是短网址后的code。

例1,php短网址实现代码。

代码示例:

/** 生成短网址
 * @param String $url 原网址
 * @return String
 */
function dwz($url){
    $code = sprintf('%u', crc32($url));
    $surl = '';
    while($code){
        $mod = $code % 62;
        if($mod>9 && $mod<=35){
            $mod = chr($mod + 55);
        }elseif($mod>35){
            $mod = chr($mod + 61);
        }
        $surl .= $mod;
        $code = floor($code/62);
    }

    return $surl;
}

生成短网址示例:

echo dwz('http://www.zzstudio.net'); //ylZpb3

 

标签:

相关推荐
更多

php获取url的301/302后url
Posted on 11月23日
nginx虚拟目录配置
Posted on 08月19日
Nginx 502 Bad Gateway 自动重启脚本
Posted on 04月06日
CentOS7 安装ffmpeg
Posted on 10月15日
  1. 175444566 2016-4-19 15:47 #1 回复TA

    看看!

发表评论

邮箱地址不会被公开。 必填项已用*标注

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。