请问这样的短网址是怎么做到发号的

测试在这 http://nh.gs/

我连续生成网址得到
http://nh.gs/4hm
http://nh.gs/con

base62后
4hm => 16452
con => 47639

传统的都是生成5到6位的,这个应该是自增的,但是为什么连续生成的经过base62后数值却差这么多,按理是连续的,我想应该是使用了某种方法防止并发重复生成,这是这个短网址源码的下载地址http://pan.baidu.com/s/1pJ4zLDD

我分析了源码但找不到生成的核心,百度谷歌也找遍了,所以来此请教大神帮帮忙(⊙0⊙)

阅读 3.7k
2 个回答

大概看了一下源码,在 ApiAction.class.php 中找到几句

php    public function thirdapi()
    {
        $method = trim($_GET['api']);
        $url = trim($_POST['url']);
        $url = empty($url) ? 'http://www.baidu.com': $url;
        if($method=='dwz')
        {
            $baseurl  = "http://dwz.cn/create.php";
            $data=array('url'=>$url);
        }

所以估计是调用的 dwz.cn 的 API 来生成的,不是自己实现的算法。

重複就重複唄

首先重複的概率很小

其次就算重複了也可以再重新生成

就醬紫。

do {
    生成隨機數
} while (重複)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题