当前位置: 首页 > 编程笔记 >

PHP之uniqid()函数用法

阎弘雅
2023-03-14
本文向大家介绍PHP之uniqid()函数用法,包括了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之sprintf函数用法详解,包括了PHP之sprintf函数用法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP中sprintf函数的用法。分享给大家供大家参考。具体用法分析如下: sprintf()函数在php官方是说把字符串格式化输出了,本文就来给各位朋友介绍一下在学习sprintf()函数时的一些经验分享,希望能给大家带来帮助. PHP函数 sprin

  • 本文向大家介绍php之readdir函数用法实例,包括了php之readdir函数用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中readdir函数用法。分享给大家供大家参考。具体用法分析如下: 定义和用法:readdir() 函数返回由 opendir() 打开的目录句柄中的条目,若成功,则该函数返回一个文件名,否则返回 false. 实例一,代码如下: 实例二,注意在

  • 问题内容: 这个问题实际上并不是寻找解决方案的问题,而仅仅是出于好奇。PHP uniqid函数具有一个更熵的标志,以使输出“更唯一”。这让我想知道,当more_entropy为true时(而不是true时),此函数多次产生相同结果的可能性有多大。换句话说,启用more_entropy时与禁用时相比,uniqid的唯一性如何?始终启用more_entropy是否有任何弊端? 问题答案: 2014年3

  • 本文向大家介绍深入理解PHP 数组之count 函数,包括了深入理解PHP 数组之count 函数的使用技巧和注意事项,需要的朋友参考一下 count() PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数。 语法: int count( mixed var [, int mode] )如果 var 是非数组的普通变量,则返回 1 ,对于不

  • 主要内容:PHP 内建函数,PHP 函数,创建 PHP 函数,语法,实例,PHP 函数 - 添加参数,实例,实例,PHP 函数 - 返回值,实例PHP 的真正威力源自于它的函数。 在 PHP 中,提供了超过 1000 个内建的函数。 PHP 内建函数 如需查看所有数组函数的完整参考手册和实例,请访问我们的 PHP 参考手册。 PHP 函数 在本章中,我们将为您讲解如何创建自己的函数。 如要在页面加载时执行脚本,您可以把它放到函数里。 函数是通过调用函数来执行的。 你可以在页面的任何位置调用函数。

  • 主要内容:密码散列算法PHP 提供了很多可用的标准函数,下表列出了常用的几个: 函数 描述 boolval 获取变量的布尔值 debug_zval_dump 查看一个变量在zend引擎中的引用计数、类型信息 doubleval floatval 的别名 empty 检查一个变量是否为空 floatval 获取变量的浮点值 get_defined_vars 返回由所有已定义变量所组成的数组 get_resource_ty