【问题标题】:Is this a good way to create a short UID for a URL?这是为 URL 创建短 UID 的好方法吗?
【发布时间】:2011-05-04 13:20:58
【问题描述】:

大家好,我正在尝试找到一种方法来生成要放置在 URL 中的 UID。现在我正在寻找不使用数据库中的顺序索引来创建 UID 的方法。这就是我想出的。

据我所知,如果它们都是在相同的 1/10000 秒内创建的,则应该只创建重复项。

function uid()
{
    list($usec, $sec) = explode(" ", microtime());

    $prec = 5;
    $usec = round($usec, $prec); 
    $sec = round($sec - ($sec / 1.001), $prec);

    $time = ($sec + $usec);

    return base_convert($time, 10, 36);
}

关于为什么这个函数不是个好主意的任何想法?

【问题讨论】:

  • GUID 很棒,但是这个函数创建的 id 是这样的:'5wxhr3k'。它们很短。

标签: php url uniqueidentifier uid


【解决方案1】:

嗯.. 也许是因为自动增量整数主要是为了这个? 仍然存在相同 id 的可能性

【讨论】:

    【解决方案2】:

    为什么不使用 PHP 真正的 uid 功能呢?这应该提供真正唯一的标识符:http://php.net/manual/en/function.uniqid.php

    关于符合 v4 的 UUID,请查看此主题:PHP function to generate v4 UUID

    【讨论】:

      【解决方案3】:

      不要重新发明轮子。 MD5、SHA1、CRC32 等哈希函数最适合这种情况。请记住,哈希键越短,冲突的可能性就越大。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-07-22
        • 1970-01-01
        • 2011-09-07
        • 1970-01-01
        • 2012-06-02
        • 2011-04-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多