【发布时间】:2013-06-16 11:19:32
【问题描述】:
我想知道如何继续创建一个与 IPv6 结构相似的随机 PHP 值
示例:2001:0db8:85a3:0042:1000:8a2e:0370:7334:nc21
我可以使用mt_rand(0000,9999).":"....... and so on 但这只会创建数值,而且是多余的。有没有一种更简单的方法可以在说一个函数中以数字方式完成它?
感谢大家的反馈和信息,最后我选择了以下代码位
$randomString = sha1(dechex(mt_rand(0, 2147483647)));
$token = implode(':', str_split($randomString, 4));
结果:
9ec0:4709:926e:4cbf:fa87:2ac3:03da:f547:485b:6464
【问题讨论】:
-
然后使用
dechex(),以及4个半字节十六进制值的实际数字范围。 -
你实际上用这个做什么?如果只是为了生成唯一的ID,还有
uniqid函数。 -
生成一个完全随机的Token
-
您可以随机创建一个整数(正如您已经展示过的那样)或创建一个像stackoverflow.com/questions/5438760/… 这样的字符。将这两个方法都放入一个函数中,然后随机选择调用哪一个。然后你会随机得到一个数字或一个字母。
-
@user1477388 感谢您的信息,但这个
$randomString = sha1(dechex(mt_rand(0, 2147483647))); $token = implode(':', str_split($randomString, 4));工作正常
标签: php