脚本宝典收集整理的这篇文章主要介绍了PHP URL缩短算法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
然而,对我来说,这个算法可能相当沉重/笨拙,可能会有更好的方法来做到这一点.
我在GOOGLE上阅读了一些,有些人似乎正在从数据库的ID列进行基本转换.这不是我太熟悉的东西.
有人可以详细说明一下这个工作吗?几个代码示例也是很棒的.
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,请注明来意。