我的网站有一个部分,为每篇文章生成一个唯一的ID,并将其发送到数据库。问题在于生成的ID总长度为16个字符,而我需要ID仅为6个字符。
以下是用于生成ID的代码:
有没有办法实现这样的变化?
以下是用于生成ID的代码:
$order_id = uniqid(rand(10,1000), false);
有没有办法实现这样的变化?
为什么不在数据库中使用自动递增来完成这个任务呢?这样第一个ID就是1,接下来是2,以此类推。如果你只需要6位数字,这将产生999999个不同的键。
之前被接受的答案是使用substr()
从uniqid()
中提取前6个字符,但这并不是百分之百安全的。 uniqid
生成一个完全唯一的ID,通过删除这些字符,可能会导致重复。
OptimusCrime说过:
<?php
$input = 5;
echo str_pad($input, 6, "0", STR_PAD_LEFT);
上面的代码将生成一个6位数字字符串,因此您可以使用该函数进行操作,以获得任何您想要的字符串:
000005