Здравствуйте, мои дорогие! =)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function baseNum_encode($val, $chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') { // не можем использовать числа больше чем 2^31-1 = 2147483647 $base = strlen($chars); $str = ''; do { $i = $val % $base; $str = $chars[$i] . $str; $val = ($val - $i) / $base; } while($val > 0); return $str; } function baseNum_decode($str, $chars='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') { $len = strlen($str); $base = strlen($chars); $val = 0; $arr = array_flip(str_split($chars)); for($i = 0; $i < $len; ++$i) { $val += $arr[$str[$i]] * pow($base, $len-$i-1); } return $val; } |
Похожие статьи:


0 Comments.