php:最小字符串

时间:2012-01-31 01:32:12

标签: php

“小网址”网站如何获得如此微小的ID网址?

我的意思是:blabla.com/JH7

我怎么能得到这样的结果?像md5这样的功能,不会重复自我。 提前谢谢!

3 个答案:

答案 0 :(得分:1)

  1. 创建一个包含short_urlurl列的数据库表。
  2. 首先插入记录a, example.com
  3. 每个新条目(short_urlb,...,c ...)增加a1
  4. 这基本上就是这些服务的运作方式。

答案 1 :(得分:1)

他们使用base36 encoding将整数转换为紧凑的字符串。

使用PHP:

<?php
$id     = 18367;
$base36 = base_convert($id, 10, 36); // convert to base36 "e67"
$base10 = base_convert($base36, 36, 10); // "e67" back to base 10, $id

如deceze所述,base62也适用于为你提供a-zA-Z0-9的字符集,而不仅仅是像base36那样的a-z0-9。

答案 2 :(得分:1)

例如,您可以简单地通过字符串迭代:

php > $str = 'aaa';
php > $str++;
php > echo $str;
aab

另一个选项是准备函数,该函数将生成包含a-zA-Z0-9的随机字符串,并在db中生成数百万个(因此您可以在需要时使用它们)或在循环中执行:

while( 1){
    $rand = randomString();
    if( isUnique( $rand)){
        break;
    }
}