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支持断点续传的源码
May 16 PHP
使用php+Ajax实现唯一校验实现代码[简单应用]
Nov 29 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
php使用PDO方法详解
Dec 27 PHP
php格式化电话号码的方法
Apr 24 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
curl和libcurl的区别简介
Jul 01 PHP
php生成curl命令行的方法
Dec 14 PHP
Smarty实现页面静态化(生成HTML)的方法
May 23 PHP
Yii的Srbac插件用法详解
Jul 14 PHP
PHP 序列化和反序列化函数实例详解
Jul 18 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
探讨php define()函数及defined()函数使用详解
2013/06/09 PHP
利用php + Laravel如何实现部署自动化详解
2017/10/11 PHP
PHP实现网站访问量计数器
2017/10/27 PHP
JS动画效果代码3
2008/04/03 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
2010/07/13 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
jQuery实现两个select控件的互移操作
2016/12/22 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
mac中利用NVM管理不同node版本的方法详解
2017/11/08 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
微信小程序实现搜索功能
2020/03/10 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
2020/04/29 Javascript
详解JS函数防抖
2020/06/05 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
Python实现登录人人网并抓取新鲜事的方法
2015/05/11 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python爬取某平台短视频的方法
2021/02/08 Python
pandas按条件筛选数据的实现
2021/02/20 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
Amaze UI 文件选择域的示例代码
2020/08/26 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
成品仓管员工作职责
2013/12/29 职场文书
生日寿宴答谢词
2014/01/19 职场文书
创业融资计划书
2014/04/25 职场文书
家长建议怎么写
2014/05/15 职场文书
老人节主持词
2015/07/04 职场文书