php uniqid 纯数字,使用PHP uniqid函数生成唯一ID

1. md5(time() . mt_rand(1,1000000));

这种方法有一定的概率会出现重复

2、php内置函数uniqid()

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.

w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。

echo uniqid();

echo uniqid();

echo uniqid();

?>

输出:

4bfd0e375396b

4bfd0e3753981

4bfd0e3753983

3、结合md5()函数生成一个唯一ID

echo md5(uniqid());

?>

输出:dfbc5c8c6438de075da28b3c8a413fd0

4、手动去处理,官方给予的案例。

public function create_guid($namespace = '') {

static $guid = '';

$uid = uniqid("", true);

$data = $namespace;

$data .= $_SERVER['REQUEST_TIME'];

$data .= $_SERVER['HTTP_USER_AGENT'];

$data .= $_SERVER['LOCAL_ADDR'];

$data .= $_SERVER['LOCAL_PORT'];

$data .= $_SERVER['REMOTE_ADDR'];

$data .= $_SERVER['REMOTE_PORT'];

$hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));

$guid = '{' .

substr($hash, 0, 8) .

'-' .

substr($hash, 8, 4) .

'-' .

substr($hash, 12, 4) .

'-' .

substr($hash, 16, 4) .

'-' .

substr($hash, 20, 12) .

'}';

return $guid;

}

返回结果类似:E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值