[php]
<?php
//制造62进制的数
function make62num($num){
if(57731386986<$num) return $num.'';
$num_arr = array(56800235584,916132832,14776336,238328,3844,62);
$str = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
$num_str = '';
foreach($num_arr as $n){
if($num>$n)
{
$num_idx = intval($num/$n);
$num = $num % $n;
$num_str.=$str[$num_idx];
}else if($num_str!='') $num_str.='0';
}
return $num_str.$str[$num];
}
//还原62进制的数
function get62num($num){
$str = '0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM';
$len = strlen($num);
$rtn = 0;
while($len>0){
$cur = substr($num,0,1);
$idx = strpos($str, $cur);
$rtn += pow(62,$len-1)*$idx;
$num = substr($num,1);
$len = strlen($num);
}
return $rtn;
}
for($i=0;$i<50;$i++){
$num = rand(1,57731386986);
$num1 = make62num($num);
$rnum = get62num($num1);
echo $num.'=>'.$num1.chr(10).$rnum.chr(10).'--------------'.chr(10);
}