搜索
首页php教程php手册php短网址算法实例代码分享

php实现的短网址算法,理论上支持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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具