php 十进制转多进制算法

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

引用自: https://www.zhangshengrong.com/p/JKN8EnlDX6/

Author: thinkwei

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注