PHP多进制转换、十进制转62进制、十进制转65进制,URL的 md5 进制转换
/**
* 自定义多进制,根据设置的多进制字符串获取十进制对应的多进制
* @param $chars_str 自定义的多进制字符串
* @param $integer 十进制数字
* @return $xbin 对应的多进制数字
*/
function xbin($chars_str, $integer){
$integer = floatval($integer);
$unit = strlen($chars_str);
echo $unit.PHP_EOL;
$chars_list = str_split($chars_str);
$mod = fmod($integer, $unit);
$xbin = isset($chars_list[$mod]) ? $chars_list[$mod] : null;
$pre_mod = floor($integer / $unit);
if($pre_mod >= 1){
$pre_mod = xbin($chars_str, $pre_mod);
return $pre_mod.$xbin;
}
return $xbin;
}
// 自定义65进制,建议打乱顺序
$chars_str= '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.';
$a = xbin($chars_str, 1024);
echo ($a); // Fn