加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – uniqid函数有一定的大小吗?

发布时间:2020-12-13 16:13:39 所属栏目:PHP教程 来源:网络整理
导读:我只是想知道,有没有人知道,PHP中的uniqid函数是否有一定的大小?如果是这样,它有多少串?我有点困惑,因为PHP手册说,当使用扩展熵时,uniqid长度为23个字符.但根据我的观察,它在26到28个字符之间变化. 解决方法 我无法确认这种行为: php -r 'for($i = 0; $i
我只是想知道,有没有人知道,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,"%s%08x%05x%.8F",prefix,sec,usec,php_combined_lcg(TSRMLS_C) * 10);

如果没有提供前缀,并且查找php_combined_lcg的定义,该定义返回带有一个前导小数的浮点数,则uniqid的输出应始终为23个字符长.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读