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实现链结人气统计
Oct 09 PHP
56.com视频采集接口程序(PHP)
Sep 22 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
php中in_array函数用法探究
Nov 25 PHP
PHP实现文件上传与下载实例与总结
Mar 13 PHP
PHP对象、模式与实践之高级特性分析
Dec 08 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
Yii2使用表单上传文件的实例代码
Aug 03 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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去掉文件前几行的方法
2015/07/29 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
2016/12/14 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
vue elementui 实现搜索栏公共组件封装的实例代码
2020/01/20 Javascript
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Python输出各行命令详解
2018/02/01 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
python 求某条线上特定x值或y值的点坐标方法
2019/07/09 Python
对Python _取log的几种方式小结
2019/07/25 Python
Flask框架单例模式实现方法详解
2019/07/31 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
django配置app中的静态文件步骤
2020/03/27 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
canvas实现按住鼠标移动绘制出轨迹的示例代码
2018/02/05 HTML / CSS
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
早读迟到检讨书
2014/01/24 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
心灵点滴观后感
2015/06/02 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers