如何使用uniqid生成6个字符长度的ID?

3
我的网站有一个部分,为每篇文章生成一个唯一的ID,并将其发送到数据库。问题在于生成的ID总长度为16个字符,而我需要ID仅为6个字符。
以下是用于生成ID的代码:
$order_id  = uniqid(rand(10,1000), false);

有没有办法实现这样的变化?
2个回答

20

为什么不在数据库中使用自动递增来完成这个任务呢?这样第一个ID就是1,接下来是2,以此类推。如果你只需要6位数字,这将产生999999个不同的键。


之前被接受的答案是使用substr()uniqid()中提取前6个字符,但这并不是百分之百安全的。 uniqid生成一个完全唯一的ID,通过删除这些字符,可能会导致重复。


0
如上所述,您可以在数据库中使用auto_increment,并使用PHP函数str_pad。例如:

OptimusCrime说过:

<?php

$input = 5;
echo str_pad($input, 6, "0", STR_PAD_LEFT);

上面的代码将生成一个6位数字字符串,因此您可以使用该函数进行操作,以获得任何您想要的字符串:

000005

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接