php 生成短网址原理及代码


Posted in PHP onJanuary 23, 2014

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 相关文章推荐
php 中文处理函数集合
Aug 27 PHP
php中hashtable实现示例分享
Feb 13 PHP
php使用递归计算文件夹大小
Dec 24 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
PHP计算加权平均数的方法
Jul 16 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
PHP动态生成指定大小随机图片的方法
Mar 25 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
php判断是否为ajax请求的方法
Nov 29 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
PHP通过get方法获得form表单数据方法总结
Sep 12 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 #PHP
php弹出对话框实现重定向代码
Jan 23 #PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 #PHP
简单的php缓存类分享     php缓存机制
Jan 22 #PHP
一组PHP可逆加密解密算法实例代码
Jan 21 #PHP
discuz加密解密函数使用方法和中文注释
Jan 21 #PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 #PHP
You might like
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
Yii快速入门经典教程
2015/12/28 PHP
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
brook javascript框架介绍
2011/10/10 Javascript
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
javascript顺序加载图片的方法
2015/07/18 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
Vue中引入样式文件的方法
2017/08/18 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
Python中使用动态变量名的方法
2014/05/06 Python
使用Python实现博客上进行自动翻页
2017/08/23 Python
Python之多线程爬虫抓取网页图片的示例代码
2018/01/10 Python
Python寻找路径和查找文件路径的示例
2019/07/10 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
详解使用python3.7配置开发钉钉群自定义机器人(2020年新版攻略)
2020/04/01 Python
基于python实现操作git过程代码解析
2020/07/27 Python
python xlsxwriter模块的使用
2020/12/24 Python
用CSS3写的模仿iPhone中的返回按钮
2015/04/04 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
英国顶尖手表珠宝品牌独家授权经销商:HS Johnson
2020/10/28 全球购物
公司员工离职证明书
2014/10/04 职场文书