長い数字を短い文字に変換する
/** * 将数字转为短网址代码 * * @param int $number 数字 * @return string 短网址代码 */ function generate_code($number) { $out = ""; $codes = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; while ($number > 60) { $key = bcmod($number,'61'); $number = bcsub(bcp($number,'61'),'1'); $out = $codes{$key}.$out; } return $codes{$number}.$out; } /** * 将短网址代码转为数字 * * @param string $code 短网址代码 * @return int 数字 */ function get_num($code){ $codes = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $num = 0; $i = strlen($code); for($j=0;$j<strlen($code);$j++){ $i--; $char = $code{$j}; $pos = strpos($codes,$char); $num = bcadd(bcmul(bcpow("61", $i),($pos + 1)),$num); } $num=bcsub($num,"1"); return $num; } /*****函数结束****/ $id="1973337397412392446"; echo $id." "; $did=generate_code($id); echo generate_code($id)." "; echo get_num($did);
上記は、長い数字を短い文字に変換する内容です。詳細については、PHP 中国語 Web サイト (www.php.cn) を参照してください。 )!