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命名空间(namespace)的使用基础及示例
Aug 18 PHP
php+mysql查询优化简单实例
Jan 13 PHP
phpMyAdmin安装并配置允许空密码登录
Jul 04 PHP
PHP之密码加密的几种方式
Jul 29 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
Jan 03 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
Laravel实现autoload方法详解
May 07 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP explode()函数用法讲解
Feb 15 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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模拟js函数unescape的函数代码
2012/10/20 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
AngularJS改变元素显示状态
2017/04/20 Javascript
浅析 NodeJs 的几种文件路径
2017/06/07 NodeJs
浅谈关于axios和session的一些事
2017/07/13 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
了解前端理论:rscss和rsjs
2019/05/23 Javascript
node.js中path路径模块的使用方法实例分析
2020/02/13 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
vue实现购物车的监听
2020/04/20 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
Python字符串格式化输出方法分析
2016/04/13 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python使用Plotly绘图工具绘制柱状图
2019/04/01 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
主持人演讲稿范文
2013/12/28 职场文书
年会主持词结束语
2014/03/27 职场文书
党支部综合考察材料
2014/05/19 职场文书
花坛标语大全
2014/06/30 职场文书
学生夜不归宿检讨书
2014/09/23 职场文书
2015年技术员工作总结
2015/04/10 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书