PHP URL缩短算法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP URL缩短算法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以推荐一个首选的算法来使用URL缩短吗?我正在使用 PHP进行编码.最初我考虑写一些从一个字符开始的东西,例如“a”,并遍历请求,在数据库中创建记录,因此必须将字符增加到b,c,d … A,B等适当.

然而,对我来说,这个算法可能相当沉重/笨拙,可能会有更好的方法做到一点.

我在GOOGLE上阅读了一些,有些人似乎正在从数据库的ID列进行基本转换.这不是我太熟悉的东西.

有人可以详细说明一下这个工作吗?几个代码示例也是很棒的.

我显然不想一个完整的解决方案,因为我想自己学习,但只是一个解释/伪代码,这将如何工作将是非常好的.

大多数缩短服务只是使用一个每个条目增加的计数器,并将基数从10转换为64.

PHP中的一个实现可能如下所示:

function encode($number) {
    return strtr(rtrim(base64_encode(pack('i',$number)),'='),'+/','-_');
}
function decode($base64) {
    $number = unpack('i',base64_decode(str_pad(strtr($base64,'-_','+/'),strlen($base64) % 4,'=')));
    return $number[1];
}

$number = mt_rand(0,PHP_INT_MAX);
var_dump(decode(encode($number)) === $number);

编码函数采用整数,将其转换为字节(pack),用Base-64编码(base64_encode)对其进行编码,修剪尾随填充=(rtrim),分别替换字符和/ by – 和_(strtr) ).解码功能是编码的逆函数,并且完全相反(除了添加尾部填充).

strtr的额外使用是将original Base-64 alphabet转换为URL and filename safe alphabet,并且/需要使用PErcentage编码进行编码.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP URL缩短算法全部内容,希望文章能够帮你解决PHP URL缩短算法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。