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 生成唯一id的几种解决方法
网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 functi
-
使用PHP uniqid函数生成唯一ID
生成唯一ID的应用场景非常普遍,如临时缓存文件名称,临时变量,临时安全码等,uniqid()函数基于以微秒计的当前时间,生成一个唯一的 ID.由于生成唯一ID与微秒时间关联,因此ID的唯一性非常可靠. 生成的唯一ID默认返回的字符串有 13 个字符串长,如果不定义唯一ID的前缀,最多可返回23个字符串长,如果再结合md5()函数,生成的唯一ID可靠性将更高,这种生成的ID比随机性的ID 最大优点在于可实现排序,特别是一些需要存储在数据库中的值. 一,函数原型 string uniqid ( [s
-
php生成局部唯一识别码LUID的代码
UUID(Universally Unique Identifier),GUID都是希望在整个时空范围内能产生唯一识别码,这在分布式计算环境下是必要的. 然而,如果仅仅是想在一个受限定的局部环境下,想生成一个"局部唯一识别码",使用UUID就是杀鸡用牛刀,这个"局部唯一识别码",我称之为LUID(Local Unique Identifier) 比如我在用php开发网站程序时,为避免用户同时多次打开同一个网页导致session名称冲突问题, 就希望保存的sessio
-
PHP之uniqid()函数用法
本文实例讲述了PHP中uniqid()函数的用法.分享给大家供大家参考.具体方法分析如下: uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. 注释:由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数(请在字符串函数参考中查找). 复制代码 代码如下: <?php echo uniqid(); ?> 本例产生 32 个字符的独一无二字符串. 复制代码 代码如下: <?php $token = md5(uniqid(r
-
SeaJS中use函数用法实例分析
本文实例讲述了SeaJS中use函数用法.分享给大家供大家参考,具体如下: 有了 define 等模块定义规范的实现,我们可以开发出很多模块.但光有一堆模块不管用,我们还得让它们能跑起来.在 SeaJS 里,要启动模块系统很简单: <script src="path/to/sea.js"></script> <script> seajs.use('./main'); </script> seajs.use 用来在页面中加载模块.通过 us
-
Oracle 中 decode 函数用法
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETURN(缺省值) END IF decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1
-
oracle中length、lengthb、substr、substrb函数用法介绍
我记得我曾经在开发form的时候犯过这样一个错误,对于form中的某个字段,对应于数据库中某张表的字段,假设在数据库中这个字段一般也就用到20个汉字的长度,后来我在开发form的时候,设置item类型长度的时候,我惯性的设置成了50byte,想着就算是20个汉字,最多也就占40个byte长度嘛.可是,就因为这一个想当然,结果出现错误了,后来发现数据库字符集编码是utf8,那么应该设置为60.从那以后,每次涉及到给字段设置长度的时候,我都会特别注意下,到底是啥编码. 在oracle中,比较常见的可
-
Python中max函数用法实例分析
本文实例讲述了Python中max函数用法.分享给大家供大家参考.具体如下: 这里max函数是Python内置的函数,不需要导入math模块 # 最简单的 max(1, 2) max('a', 'b') # 也可以对列表和元组使用 max([1,2]) max((1,2)) # 还可以指定comparator function max('ah', 'bf', key=lambda x: x[1]) def comparator(x): return x[1] max('ah', 'bf', ke
-
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
本文实例分析了PHP常见字符串处理函数用法.分享给大家供大家参考,具体如下: <?php $s = "hello world"; //整理 echo 'trim(); ltrim(); rtrim()'; echo '<br />'; echo '长度为: '.strlen($s); echo '<br />'; //大小写 echo '首字母大写: '.Ucfirst($s); echo '<br />'; echo '每个单词首字母大写:
-
Yii全局函数用法示例
本文实例讲述了Yii全局函数用法.分享给大家供大家参考,具体如下: 由于YII致力于完美的整合第三方库,它并没有定义任何全局函数.yii中的每一个应用都需要全类别和对象范围. 例如,Yii::app()->user;Yii::app()->params['name'];等等.我们可以自行设定全局函数,使得代码看起来更加简洁易用. 我们可以保存在globals.php在protected/config目录下.然后,在入口脚本index.php中,定义如下内容: $globals=dirname(
-
delphi字符串分隔函数用法实例
本文实例讲述了delphi字符串分隔函数用法.分享给大家供大家参考.具体实现方法如下: 该实例可实现根据字符串Separator的表示将字符串s分隔为若干个字符串,存入rs字符串列表中,具体代码如下: 复制代码 代码如下: procedure SeparateTerms2(s:string;Separator:string;var rs:TStringList); var AStr: string; idx: Integer; ASubStr: string; begin ASt
-
php中数字、字符与对象判断函数用法实例
本文实例讲述了php中数字.字符与对象判断函数用法.分享给大家供大家参考.具体分析如下: 在php判断数字,字符,对象,数组等包括有参见 is_bool().is_int().is_integer().is_float().is_real().is_object() 和 is_array()这些函数了,不知道你知道多少呢. 1. 双精度数判断:is_double is_double -- is_float() 的别名 描述:此函数是 is_float() 的别名函数,代码如下: 复制代码 代码如
-
php中HTTP_REFERER函数用法实例
本文实例分析了php中HTTP_REFERER函数用法.分享给大家供大家参考.具体分析如下: 利用php的http_referer函数来判断用户的来路,这是比较简单的,实例代码如下: 复制代码 代码如下: <?php if (isset($_SERVER['HTTP_REFERER'])) { print "The page you were on previously was {$_SERVER['HTTP_REFERER']}<br />";
随机推荐
- Java中实现Comparator接口和用法实例(简明易懂)
- JavaScript获取表格(table)当前行的值、删除行、增加行
- C#逐行读取txt文件的方法
- python append、extend与insert的区别
- FloatingActionButton增强版一个按钮跳出多个按钮第三方开源之FloatingActionButton
- 文档对象模型DOM通俗讲解
- 详解vue的数据binding绑定原理
- Node.js connect ECONNREFUSED错误解决办法
- css动态模糊效果
- 全面了解servlet中cookie的使用方法
- Windows 2008 R2 单网卡搭建vpn实战设置方法
- SQL里类似SPLIT的分割字符串函数
- 基于jquery实现多级菜单效果
- 使用Curl命令查看请求响应时间方法
- javascript阻止scroll事件多次执行的思路及实现
- 接收键盘指令的脚本
- 基于C# 中可以new一个接口?的问题分析
- Android下2d物理引擎Box2d用法简单实例
- 详解Java继承中属性、方法和对象的关系
- spring学习教程之@ModelAttribute注解运用详解