php 生成短网址原理及代码

yipeiwu_com6年前PHP代码库
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。

代码如下:
复制代码 代码如下:

/** 生成短网址
* @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;

}

相关文章

php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)

因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标...

phpExcel导出大量数据出现内存溢出错误的解决方法

phpExcel将读取的单元格信息保存在内存中,我们可以通过 复制代码 代码如下: PHPExcel_Settings::setCacheStorageMethod() 来设置不同的缓存...

PHP parse_ini_file函数的应用与扩展操作示例

本文实例讲述了PHP parse_ini_file函数的应用与扩展操作。分享给大家供大家参考,具体如下: parse_ini_file($filename, $process_secti...

php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

本文实例讲述了php字符比较函数similar_text、strnatcmp与strcasecmp用法。分享给大家供大家参考。具体如下: ① similar_text() 函数计算两个字...

php cookie的操作实现代码(登录)

第一个文件login_frm.php这个是登录窗口 代码 复制代码 代码如下: <html> <head> <meta http-equiv="Conten...