/** * 生成短地址的标识,场景:根据数据库自增id生成短地址的标示 */ class Short_url{ /** * 自定义数,可以根据需要增加符号 */ private $code_map = array( '0' => 'a', '1' => 'b', '2' => 'c', '3' => 'd', '4' => 'e', '5' => 'A', '6' => 'B', '7' => 'C', '8' => 'D', '9' => 'E', '10' => '1', '11' => '2', '12' => '3', '13' => '4', '14' => '5' // 增加符号 ); /** * 根据十进制整数转换为自定义进制数 */ public function to_code($num) { // 结果 $result = ''; // 进制 $scale = count($this->code_map); // 余数 $remain = 0; while($num>0) { $remain = $num % $scale; $num = floor($num / $scale); // echo '余数:' . $remain . ";\n"; // 调试代码 $result = $this->code_map[$remain] . $result; } return $result; } } // 调用 $short_url = new Short_url(); echo '短地址:' . $short_url->to_code(123); echo '<br/>'; echo '短地址:' . $short_url->to_code(456);
输出:
短地址:Dd
短地址:caB
用法,将生成的标示存在数据库与id对应,这样就可以实现短地址效果了。