php将长数字串变成短字符串

php将长数字串变成短字符串的方法,可用于id转化等

php将长数字串变成短字符串的方法,可用于id转化等。

$str="0abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/**
  * 将数字转为短字符串
  *
  * @param int $number 数字
  * @return string 短字符串
  */
public function generate_code($number) {
	$out  = "";
	$codes = $this->str;
	while ($number > 61) {
		$m = $number % 62;
		$out = $codes[$m].$out;
		$number = ($number - $m) / 62;
	}
	return $codes[$number].$out;
}
/**
 * 将短字符串转为数字
 *
 * @param string $string短字符串
 * @return int 数字
 */
public function get_num($string){
	$codes = $this->str;
	$num = 0;
	for($i=0;$i<strlen($string);$i++){
		$n = strlen($string) - $i -1;
		$pos = strpos($codes,$string[$i]);
		$num += $pos * pow(62, $n);
	}
	return $num;
}

 

作者: 二皮

Hackers please go away