开发的时候经常需要生成唯一的标识,例如订单号,用户标识等。

记录下几种生成的方法:

1. PHP 自带的函数 uniqid()

echo uniqid();
echo uniqid('php_');

此函数不保证返回值的唯一性。 由于绝大多数系统使用 NTP 或者类似服务调整系统的时间,所以系统时间经常发生变化。 此外,进程/线程可能不会返回唯一的 ID。 用 more_entropy 来增加唯一性的概率。

2. 多带点客户端信息

echo md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR'].time().mt_rand(1,10000));

3.时间加随机数结合

echo date('YmdHis') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

;