目录
php短网址算法实例代码分享_PHP教程
Jul 13, 2016 am 10:27 AMphp实现的短网址算法,理论上支持1,073,741,824个短网址。
每个网址用6个字符代替,(6^32) 最多可以拥有1,073,741,824个短网址。
当然,你还可以记录更详细的信息,如访问记录,创建时间等。
如果真不够用了,还可以删掉很久不用的。
<span>function</span> shorturl(<span>$input</span><span>) { </span><span>$base32</span> = <span>array</span><span> ( </span>'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5'<span> ); </span><span>$hex</span> = <span>md5</span>(<span>$input</span><span>); </span><span>$hexLen</span> = <span>strlen</span>(<span>$hex</span><span>); </span><span>$subHexLen</span> = <span>$hexLen</span> / 8<span>; </span><span>$output</span> = <span>array</span><span>(); </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$subHexLen</span>; <span>$i</span>++<span>) { </span><span>$subHex</span> = <span>substr</span> (<span>$hex</span>, <span>$i</span> * 8, 8<span>); </span><span>$int</span> = 0x3FFFFFFF & (1 * ('0x'.<span>$subHex</span><span>)); </span><span>$out</span> = ''<span>; </span><span>for</span> (<span>$j</span> = 0; <span>$j</span> < 6; <span>$j</span>++<span>) { </span><span>$val</span> = 0x0000001F & <span>$int</span><span>; </span><span>$out</span> .= <span>$base32</span>[<span>$val</span><span>]; </span><span>$int</span> = <span>$int</span> >> 5<span>; } </span><span>$output</span>[] = <span>$out</span><span>; } </span><span>return</span> <span>$output</span><span>; }</span>
登录后复制
测试代码:
<span>$input</span> = 'http://www.jbxue.com/1'<span>; </span><span>$output</span> = shorturl(<span>$input</span><span>); </span><span>echo</span> "Input : <span>$input</span>\n"<span>; </span><span>echo</span> "Output : {<span>$output</span>[0]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[1]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[2]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[3]}\n"<span>; </span><span>echo</span> "\n"<span>; </span><span>$input</span> = 'http://www.jbxue.com/2'<span>; </span><span>$output</span> = shorturl(<span>$input</span><span>); </span><span>echo</span> "Input : <span>$input</span>\n"<span>; </span><span>echo</span> "Output : {<span>$output</span>[0]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[1]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[2]}\n"<span>; </span><span>echo</span> " {<span>$output</span>[3]}\n"<span>; </span><span>echo</span> "\n";
登录后复制
输出:
Input : http://www.jbxue.com/1
Output : h0xg4r
bdr3tw
osk2d3
4azfqa
Input : http://www.jbxue.com/2
Output : tm5kxb
ceoj2s
yw3dvl
nrmrxl
您可能感兴趣的文章:
- php生成短网址原理与实例
- php生成短网址示例代码
- php生成短网址的思路与实现
- php生成短网址 仿微博短网址生成代码
- php微博短网址算法 php生成短网址的实现代码
- php短网址超简单代码
- php生成短网址的简单代码
- php 生成短网址的一例代码
- php 短网址的实现代码
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
公众号网页更新缓存难题:如何避免版本更新后旧缓存影响用户体验?
3 周前
By 王林

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)