php实现的短网址算法分享
每个网址用6个字符代替,(6^32)最多可以拥有1,073,741,824个短网址。
当然,你还可以记录更详细的信息,如访问记录,创建时间等。
如果真不够用了,还可以删掉很久不用的。
functionshorturl($input){
$base32=array(
'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'
);
$hex=md5($input);
$hexLen=strlen($hex);
$subHexLen=$hexLen/8;
$output=array();
for($i=0;$i<$subHexLen;$i++){
$subHex=substr($hex,$i*8,8);
$int=0x3FFFFFFF&(1*('0x'.$subHex));
$out='';
for($j=0;$j<6;$j++){
$val=0x0000001F&$int;
$out.=$base32[$val];
$int=$int>>5;
}
$output[]=$out;
}
return$output;
}
测试代码:
$input='https://www.nhooo.com/1';
$output=shorturl($input);
echo"Input :$input\n";
echo"Output:{$output[0]}\n";
echo" {$output[1]}\n";
echo" {$output[2]}\n";
echo" {$output[3]}\n";
echo"\n";
$input='https://www.nhooo.com/2';
$output=shorturl($input);
echo"Input :$input\n";
echo"Output:{$output[0]}\n";
echo" {$output[1]}\n";
echo" {$output[2]}\n";
echo" {$output[3]}\n";
echo"\n";
输出:
Input:https://www.nhooo.com/1 Output:h0xg4r bdr3tw osk2d3 4azfqa Input:https://www.nhooo.com/2 Output:tm5kxb ceoj2s yw3dvl nrmrxl
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下