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 相关文章推荐
PHP5与MySQL数据库操作常用代码 收集
Mar 21 PHP
PHP自动识别字符集并完成转码详解
Aug 02 PHP
php 不使用js实现页面跳转
Feb 11 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
php经典算法集锦
Nov 14 PHP
CI(Codeigniter)的Setting增强配置类实例
Jan 06 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
浅析Yii2 gridview实现批量删除教程
Apr 22 PHP
图文详解PHP环境搭建教程
Jul 16 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
php创建类并调用的实例方法
Sep 25 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
Three.js学习之Lamber材质和Phong材质
2016/08/04 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
解决npm管理员身份install时出现权限的问题
2018/03/16 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
[01:09]2014DOTA2国际邀请赛 TI4西雅图DOTA2 中国美女coser加油助威
2014/07/20 DOTA
[34:27]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第一局
2016/02/26 DOTA
python使用pymysql实现操作mysql
2016/09/13 Python
Python3中的json模块使用详解
2018/05/05 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python序列类型的打包和解包实例
2019/12/21 Python
pandas.DataFrame.drop_duplicates 用法介绍
2020/07/06 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
国外平面设计第一市场:99designs
2016/10/25 全球购物
WiFi云数码相框:Nixplay
2018/07/05 全球购物
在校生党员自我评价
2013/09/25 职场文书
财务会计专业个人求职信范本
2014/01/08 职场文书
优乐美广告词
2014/03/14 职场文书
合同意向书范本
2014/07/30 职场文书
实习协议书范本
2014/09/25 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
晚会开幕词
2015/01/28 职场文书
对讲机知识
2022/04/07 无线电