我只是想知道,有没有人知道,
PHP中的uniqid函数是否有一定的大小?如果是这样,它有多少串?我有点困惑,因为PHP手册说,当使用扩展熵时,uniqid长度为23个字符.但根据我的观察,它在26到28个字符之间变化. 最佳答案 我无法确认这种行为:
php -r 'for($i = 0; $i < 1000; $i++) print strlen(uniqid("", true)) . "\n";'
使用PHP 5.3.x在OS X和Ubuntu上测试,每次迭代产生23次.
您使用的是什么os / PHP版本?
正如OP在他的问题的评论中指出的那样:省略前缀应该解决问题;)
为了详细说明,可以查看PHP源代码:第79行的https://svn.php.net/viewvc/php/php-src/tags/php_5_3_8/ext/standard/uniqid.c?view=markup:
spprintf(&uniqid, 0, "%s%08x%05x%.8F", prefix, sec, usec, php_combined_lcg(TSRMLS_C) * 10);
如果没有提供前缀,并且查找php_combined_lcg的定义,该定义返回带有一个前导小数的浮点数,则uniqid的输出应始终为23个字符长.