PHP之uniqid()函数用法

2015-01-24信息快讯网

这篇文章主要介绍了PHP中uniqid()函数的用法,包括了函数的基本用法与应用分析,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了PHP中uniqid()函数的用法。分享给大家供大家参考。具体方法分析如下:

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID。
注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找)。

<?php
echo uniqid();
?>

本例产生 32 个字符的独一无二字符串。

<?php
$token = md5(uniqid(rand()));
echo $token;
?>

 
uniqid() 返回一个带前缀的唯一标识基于当前时间精确到微秒.
只是说基于当前时间,但是没有说明与当前时间的关系如何。
echo uniqid();可以看到uniqid始终是一个不断变化的长度为13的十六进制数。

来看看下面这段代码:

<?php
echo hexdec(uniqid())/(time()+microtime()); 
?>

输出基本上在1048576左右。

可以断定,uniqid就是当前时间精确到微秒再乘以1048576(2的20次幂)最后转换为十六进制得到的。
知道uniqid与time的关系后uniqid就可以有更广泛的用途了,比如在论坛中可以用uniqid作为帖子的文件名。

做在帖子索引中,可以很方便的按时间查找帖子。

结合上下代码看,我想他的作用是生成一个不重复的32位字符吧

uniqid() 函数本身就是基于以微秒计的当前时间,所以在高并发的情况下肯定会出现重复的情况,解决的的方法是你可以在这个前提下再生成一个随机数,然后两者结合后产生出一个新的数,这样就会降低重复的概率。如果还是想要再精确的话还可以加上客户端的IP的Md5码来一同生成,这样应该重复的概率就极低了,可以说是几乎不会重复。

<?php
function getRand(){
    return uniqid() . rand(1, 100000);
}
echo getRand();
exit;
?>

希望本文所述对大家的PHP程序设计有所帮助。

php使用正则表达式获取图片url的方法
php使用CURL伪造IP和来源实例详解
php+mysql实现无限分类实例详解
php截取html字符串及自动补全html标签的方法
php在linux下检测mysql同步状态的方法
php计划任务之ignore_user_abort函数实现方法
php实现utf-8转unicode函数分享
php使用fputcsv()函数csv文件读写数据的方法
19个Android常用工具类汇总
PHP跨平台获取服务器IP地址自定义函数分享
php中mail函数发送邮件失败的解决方法
php中magic_quotes_gpc对unserialize的影响分析
yii2.0之GridView自定义按钮和链接用法
yii中widget的用法
Yii中CGridView关联表搜索排序方法实例详解
Yii把CGridView文本框换成下拉框的方法
php中call_user_func函数使用注意事项
PHP中UNIX时间戳和日期间的转换与计算实例
PHP中round()函数对浮点数进行四舍五入的方法
PHP处理Oracle的CLOB实例
PHP实现Soap通讯的方法
ThinkPHP实现二级循环读取的方法
ThinkPHP写数组插入与获取最新插入数据ID实例
ThinkPHP有变量的where条件分页实例
PHP的拦截器实例分析
PHP中使用addslashes函数转义的安全性原理分析
php中count获取多维数组长度的方法
Codeigniter(CI)框架分页函数及相关知识
ThinkPHP模板之变量输出、自定义函数与判断语句用法
set_exception_handler函数在ThinkPHP中的用法
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
PHPUnit安装及使用示例
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Windows下安装PHP单元测试环境PHPUnit图文教程
php中__destruct与register_shutdown_function执行的先后顺序问题
PHP-Java-Bridge使用笔记
完善CodeIgniter在IDE中代码提示功能的方法
php去掉URL网址中带有PHPSESSID的配置方法
PHP数字和字符串ID互转函数(类似优酷ID)
©2014-2024 dbsqp.com