Php url缩短器修改
我正在使用一个php url缩短器,我的问题是它只创建最多2个字符的缩短代码(例如domain.com/XX)。我希望它最多5个字符(例如domain.com/XXXXX) 我相信我找到了相关的代码,但我不知道如何更改它以允许这种修改Php url缩短器修改,php,Php,我正在使用一个php url缩短器,我的问题是它只创建最多2个字符的缩短代码(例如domain.com/XX)。我希望它最多5个字符(例如domain.com/XXXXX) 我相信我找到了相关的代码,但我不知道如何更改它以允许这种修改 function decode_url_id($code) { $scheme = "abcdefghijklmnoprstuqwxvyz0123456789ABCDEFGHIJKLMNOPRSTQWXUVYZ"; $
function decode_url_id($code)
{
$scheme = "abcdefghijklmnoprstuqwxvyz0123456789ABCDEFGHIJKLMNOPRSTQWXUVYZ";
$scheme_size = strlen($scheme);
$number = 0;
$code_size = strlen($code);
$code = strrev($code);
for($i = 0; $i < $code_size; $i++)
{
$digit_value = strpos($scheme, $code[$i]);
$number += ($digit_value * pow($scheme_size, $i));
}
return $number;
}
function encode_url_id($number, $code="")
{
$scheme = "abcdefghijklmnoprstuqwxvyz0123456789ABCDEFGHIJKLMNOPRSTQWXUVYZ";
$scheme_size = strlen($scheme);
if ($number >= $scheme_size)
{
$c = $number % $scheme_size;
$code .= $scheme[$c];
$number = floor($number / $scheme_size);
return encode_url_id($number, $code);
}
else
{
$code .= $scheme[$number];
$code = strrev($code);
}
return $code;
}
函数解码url\u id($code)
{
$scheme=“abcdefghijklmnoprstuqwxvyz0123456789ABCDEFGHIJKLMNOPRSTQWXUVYZ”;
$scheme\u size=strlen($scheme);
$number=0;
$code_size=strlen($code);
$code=strev($code);
对于($i=0;$i<$code\u size;$i++)
{
$digit_value=strpos($scheme,$code[$i]);
$number+=($digit_value*pow($scheme_size,$i));
}
返回$number;
}
函数encode\u url\u id($number,$code=”“)
{
$scheme=“abcdefghijklmnoprstuqwxvyz0123456789ABCDEFGHIJKLMNOPRSTQWXUVYZ”;
$scheme\u size=strlen($scheme);
如果($number>=$scheme\u size)
{
$c=$number%$scheme\u size;
$code.=$scheme[$c];
$number=楼层($number/$scheme\u size);
返回encode\u url\u id($number,$code);
}
其他的
{
$code.=$scheme[$number];
$code=strev($code);
}
返回$code;
}
我是不是找错树了?为什么不在数据库中用 用法示例:
$new_url = base_base2base($link_id, 10, 62);
通常,您不会解码缩短的URL。只需将其作为密钥存储在数据库中。事实上,如果它根本无法解码,则更好,这样可以保护您的简短服务不被所有URL捕获。每次运行它时,它们是否必须编码为相同的缩短版本?还是以36为基数进行编码,避免使用大写和小写字母。