Rumah > Soal Jawab > teks badan
巴扎黑2017-04-10 16:36:33
可以生成一个保证同一时空内不重复的uuid或者guid,这个开源的类有很多,自己也可以写,根据当前时间戳+随机因子.随机因子可包括当前的pc的mac地址和随机字符串和当前代码的行数等等,PHP内置的函数:
com_create_guid可以完成你的功能.如果你不满足,github上有许多开源的实现.
补充:1应该是要固定长度 2遇到字母转成数字或将随机引起用数字表示
伊谢尔伦2017-04-10 16:36:33
贴上我一段伪代码,我使用过的id生成器
$id = substr(strtotime(date("Y-m-d", time())), 0, 2) . substr(strrev(microtime()), 0, 2) . substr(mt_rand(), 0, 5) . substr(rand(), 0, 2);
$sql = "SELECT id FROM table WHERE id=" . $id . " LIMIT 1";
$data mysql_query($sql);
思路大概是时间戳加上随机数拼凑,具体实现当然楼主根据需求再做修改
虽然根据计算基本可以得出唯一,但是不能确保,最好入库加唯一键,通过查询来保证唯一值