PHP之uniqid()函数用法
PHP 函数 用法
2023-06-13 09:15:30 时间
本文实例讲述了PHP中uniqid()函数的用法。分享给大家供大家参考。具体方法分析如下:
uniqid()函数基于以微秒计的当前时间,生成一个唯一的ID。
注释:由于基于系统时间,通过该函数生成的ID不是最佳的。如需生成绝对唯一的ID,请使用md5()函数(请在字符串函数参考中查找)。
echouniqid();
?>
本例产生32个字符的独一无二字符串。
$token=md5(uniqid(rand()));
echo$token;
?>
uniqid()返回一个带前缀的唯一标识基于当前时间精确到微秒.
只是说基于当前时间,但是没有说明与当前时间的关系如何。
echouniqid();可以看到uniqid始终是一个不断变化的长度为13的十六进制数。
来看看下面这段代码:
echohexdec(uniqid())/(time()+microtime());
?>
输出基本上在1048576左右。
可以断定,uniqid就是当前时间精确到微秒再乘以1048576(2的20次幂)最后转换为十六进制得到的。
知道uniqid与time的关系后uniqid就可以有更广泛的用途了,比如在论坛中可以用uniqid作为帖子的文件名。
做在帖子索引中,可以很方便的按时间查找帖子。
结合上下代码看,我想他的作用是生成一个不重复的32位字符吧
uniqid()函数本身就是基于以微秒计的当前时间,所以在高并发的情况下肯定会出现重复的情况,解决的的方法是你可以在这个前提下再生成一个随机数,然后两者结合后产生出一个新的数,这样就会降低重复的概率。如果还是想要再精确的话还可以加上客户端的IP的Md5码来一同生成,这样应该重复的概率就极低了,可以说是几乎不会重复。
functiongetRand(){
returnuniqid().rand(1,100000);
}
echogetRand();
exit;
?>
希望本文所述对大家的PHP程序设计有所帮助。
相关文章
- strstr函数php,strstr 函数用法[通俗易懂]
- 十天学会PHP_十天学会php教程
- PHP安装pthreads多线程扩展
- PHP 使用 + 操作符,array_merge 函数 ,以及 array_merge_recursive 函数进行合并数组的区别
- 技巧Linux新手必知的PHP换行技巧(linux换行php)
- Linux搭建PHP网站实现快速上线(linux架设php网站)
- 程序快速学会在Linux中执行PHP程序(linux执行php)
- PHP开启Redis之路 正确的开启方式(php开启redis)
- PHP轻松获取MySQL错误信息教程(php获取mysql错误)
- 如何在Linux系统下执行PHP文件?(linux下执行php)
- 基于PHP的Redis视频教程(redis视频教程php)
- 使用php重新实现PHP脚本引擎内置函数
- php短域名转换为实际域名函数
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php中批量修改文件后缀名的函数代码
- PHP常用特殊运算符号和函数总结(php新手入门必看)
- php的sprintf函数的用法控制浮点数格式
- php析构函数的具体用法小结
- PHP之sprintf函数用法详解
- php中in_array函数用法分析
- PHP易混淆函数的区别及用法汇总
- php中convert_uuencode()与convert_uuencode函数用法实例
- PHP中SimpleXML函数用法分析