converting a number base 10 to base 62 (a-zA-Z0-9)

后端 未结 10 1702
挽巷
挽巷 2020-11-29 01:22

I have a number in base 10. Is there anyway to translate it to a base 62?

Example:

echo convert(12324324);
// returns Yg3 (fantasy example here)
         


        
10条回答
  •  猫巷女王i
    2020-11-29 02:03

    function convertBase10ToBase62($num){
        $charset="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $endChar=$charset[$num%62];
        $rtn="";
    
        if ( $num == "62" ) { 
            $rtn=$rtn.$charset[1]; 
        } else if ( $num >= 62 ) { 
            $rtn=$rtn.$charset[intval($num/62)%62+1]; 
        }
    
        $num=intval($num/62);
    
        while ($num > 61) {
            if ( is_int($num/62) == true ) { 
                $rtn=$rtn.$charset[0]; 
            } else { 
                $rtn=$rtn.$charset[$num%62]; 
            }
    
            $num=intval($num/62);
        }
        $rtn=$rtn.$endChar;
        echo "\n";
        echo $rtn;
    
        return $rtn;
    }
    

提交回复
热议问题