Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP uniqid()在将PHP更新为5.3.26后不再是唯一的_Php_Unique_Zend Server - Fatal编程技术网

PHP uniqid()在将PHP更新为5.3.26后不再是唯一的

PHP uniqid()在将PHP更新为5.3.26后不再是唯一的,php,unique,zend-server,Php,Unique,Zend Server,还有人发现PHP在更新到5.3.26后不再为uniqid()生成唯一值吗?我以前的版本是5.3.16 这不是一个小问题。我的DOM ID是使用该函数为所有jQueryUI按钮生成的,其中很多按钮都有重复的ID 我已经将代码从uniqid(“按钮”)更改为uniqid(“按钮”,true),但它没有更改结果。仍然得到重复的ID 这是在将Zend Server free edition更新为最新版本后发生的 有解决办法吗?重构代码以使用整数计数器不是一项小任务,这意味着我必须重新测试所有内容。uni

还有人发现PHP在更新到5.3.26后不再为
uniqid()
生成唯一值吗?我以前的版本是5.3.16

这不是一个小问题。我的DOM ID是使用该函数为所有jQueryUI按钮生成的,其中很多按钮都有重复的ID

我已经将代码从
uniqid(“按钮”)
更改为
uniqid(“按钮”,true)
,但它没有更改结果。仍然得到重复的ID

这是在将Zend Server free edition更新为最新版本后发生的

有解决办法吗?重构代码以使用整数计数器不是一项小任务,这意味着我必须重新测试所有内容。

uniqid()只提供了一种可能性。如果你真的想要一个唯一的ID,你必须使用递增的整数


也就是说,复制Uniqid的可能性非常小。您是否以任何方式截断uniqid()的结果?

好的,我可以通过执行以下操作修复我的问题

更改:

 $id = uniqid('button');


包括附加了一个点的额外数字。这会创建无效的DOM ID(在我的例子中),所以我只是用破折号替换它。

没有,但从ID上看,uniqid的分数似乎不再是毫秒。因此,连续快速调用uniqid会产生重复的结果。我将附加一个计数器值,这将暂时修复它,但我必须停止使用uniqid。
 $id = str_replace('.','-',uniqid('button',true));