gpt4 book ai didi

php - 如何让 "uniqid"只给出数字?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:52:04 26 4
gpt4 key购买 nike

我从不同的教程示例中整理了以下代码:

<?php

$stamp = date("Ymdhis");
$random_id_length = 6;
$rndid = crypt(uniqid(rand(),1));
$rndid = strip_tags(stripslashes($rndid));
$rndid = str_replace(".","",$rndid);
$rndid = strrev(str_replace("/","",$rndid));
$rndid = substr($rndid,0,$random_id_length);
$orderid = "$stamp-$rndid";
$orderid = str_replace(".", "", "$orderid");
echo($orderid);

?>

fiddle :http://phpfiddle.org/main/code/27d-qfw

我想创建一个数字;当前时间,后跟一个 6 位随机数。

例如:20130710045730-954762

但是目前随机数字也包括字母。

例如:20130710045730-Z3sVN2

如何编辑代码以仅包含数字?感谢您的帮助。

最佳答案

uniqid() 将已经返回数字。但是在他们的十六进制表示中。一般来说,您可以将它们转换为小数:

echo hexdec(uniqid());

该值只能在 64 位系统上观察才有意义,因为它非常大并且超出了 32 位有符号整数的限制(如 php 的整数)。这就是重点。 uniqid() 将如此大的数字与其他技术结合使用以确保高度的唯一性。 如果您只使用 6 位数字,则不能再授予此权限。值发生冲突的风险会很高。

我建议使用数据库中的 auto_increment 值或类似的东西来生成应用程序范围内的唯一性。

关于php - 如何让 "uniqid"只给出数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17576803/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com