php中的Base62类(适用于数值转字符串) |
本文标签:Base62类,数值转字符串 Base62类源码: 复制代码 代码如下: class Base62 { private $string = "vPh7zZwA2LyU4bGq5tcVfIMxJi6XaSoK9CNp0OWljYTHQ8REnmu31BrdgeDkFs"; public function base62_encode($str) { $out = ; for($t=floor(log10($str)/log10(62)); $t>=0; $t--) { $a = floor($str / pow(62, $t)); $out = $out.substr($this->string, $a, 1); $str = $str - ($a * pow(62, $t)); } return $out; } public function base62_decode($str) { $out = 0; $len = strlen($str) - 1; for($t=0; $t<=$len; $t++) { $out = $out + strpos($this->string, substr($str, $t, 1)) * pow(62, $len - $t); } return substr(sprintf("%f", $out), 0, -7); } } 用法: 复制代码 代码如下: $str = 1; $object = new Base62(); echo $object->base62_encode($str) . "\n"; echo $object->base62_decode($object->base62_encode($str)) . "\n"; |