当前位置:首页 » 编程语言 » php生成唯一数字

php生成唯一数字

发布时间: 2022-08-29 06:25:34

A. 如何用phpfor循环生成5位,数字字母组合,永不不重复

如果你希望永不重复 建议采用 PHP GUID

GUID是什么

GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) 。 GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中,分配必须具有唯一性的标识符。

PHP中并不提供GUID的内部实现。为此我们可以自己写算法实现。代码片段如下:
function create_guid() {
$charid = strtoupper(md5(uniqid(mt_rand(), true)));
$hyphen = chr(45);// "-"
$uuid = chr(123)// "{"
.substr($charid, 0, 8).$hyphen
.substr($charid, 8, 4).$hyphen
.substr($charid,12, 4).$hyphen
.substr($charid,16, 4).$hyphen
.substr($charid,20,12)
.chr(125);// "}"
return $uuid;
}

B. PHP生成10位左右,数字、字母混合的字符串且唯一

$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn =
$yCode[intval(date('Y')) - 2017] . strtoupper(dechex(date('m'))) . date(
'd') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf(
'%02d', rand(0, 99));

C. php 随机生成不重复用户ID

php可以使用uniqid函数生成唯一的ID

uniqid — 生成一个唯一ID

stringuniqid([string$prefix=""[,bool$more_entropy=false]])

获取一个带前缀、基于当前时间微秒数的唯一ID。

参数说明:

prefix:有用的参数。例如:如果在多台主机上可能在同一微秒生成唯一ID。

prefix为空,则返回的字符串长度为13。more_entropy 为 TRUE,则返回的字符串长度为23。

more_entropy:如果设置为 TRUE,uniqid() 会在返回的字符串结尾增加额外的煽(使用combined linear congruential generator)。使得唯一ID更具唯一性。

返回值:

返回字符串形式的唯一ID。

D. PHP的uniqid函数产生的id真的是唯一的么

生成唯一ID的应用场景非常普遍,如临时缓存文件名称,临时变量,临时安全码等,uniqid()函数基于以微秒计的当前时间,生成一个唯一的 ID。由于生成唯一ID与微秒时间关联,因此ID的唯一性非常可靠。

生成的唯一ID默认返回的字符串有 13 个字符串长,如果不定义唯一ID的前缀,最多可返回23个字符串长,如果再结合md5()函数,生成的唯一ID可靠性将更高,这种生成的ID比随机性的ID 最大优点在于可实现排序,特别是一些需要存储数据库中的值。

E. php 生成唯一id的几种解决方法

1、md5(time() . mt_rand(1,1000000));
这种方法有一定的概率会出现重复
2、php内置函数uniqid()
uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.
方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872

F. thinkphp怎么生成唯一标识

1、md5(time() . mt_rand(1,1000000));
这种方法有一定的概率会出现重复

2、php内置函数uniqid()

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.

w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。

3、官方uniqid()参考手册有用户提供的方法,结果类似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}

public function create_guid($namespace = '') {
static $guid = '';
$uid = uniqid("", true);
$data = $namespace;
$data .= $_SERVER['REQUEST_TIME'];
$data .= $_SERVER['HTTP_USER_AGENT'];
$data .= $_SERVER['LOCAL_ADDR'];
$data .= $_SERVER['LOCAL_PORT'];
$data .= $_SERVER['REMOTE_ADDR'];
$data .= $_SERVER['REMOTE_PORT'];
$hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
$guid = '{' .
substr($hash, 0, 8) .
'-' .
substr($hash, 8, 4) .
'-' .
substr($hash, 12, 4) .
'-' .
substr($hash, 16, 4) .
'-' .
substr($hash, 20, 12) .
'}';
return $guid;
}

G. php生成8位唯一字符串

functionget62($src,$length=8){
$md5=md5($src,true);

$pos=0;
$res="";
while(strlen($res)<$length&&($bin=substr($md5,$pos,4))!=""){
$uint=sprintf("%u",unpack("Nint",$bin)['int']);
$res.=decto62($uint);
$pos+=4;
}
returnsubstr($res,0,$length);
}

functiondecto62($src){
static$table=[];
$table=array_merge(range(0,9),range('A',"Z"),range('a',"z"));

$arr62=[];
$div=$src;
do{
$mod=$div%62;
array_unshift($arr62,$table[$mod]);
$div=intval($div/62);
}while($div!=0);

returnimplode("",$arr62);
}

var_mp(get62("abc"));

H. PHP怎么生成唯一的随机数

可以使用毫秒数时间戳加上一个四位的随机数 这样理论上是不可能出现重复的

I. php产生唯一数字,并在数据库里面检查是否重复,如果重复则重新生成,怎么实现

在数据库中将该字段设为 unique
php提交时 如果重复则会 返回false
此时在php函数中重新生成

J. 如何使用php生成唯一ID的4种方法

方法1

<?php
$numbers=range(1,50);
//shuffle将数组顺序随即打乱
shuffle($numbers);
//array_slice取该数组中的某一段
$num=6;
$result=array_slice($numbers,0,$num);
print_r($result);
?>

方法二

<?php
$numbers=range(1,20);
//播下随机数发生器种子,可有可无,测试后对结果没有影响
srand((float)microtime()*1000000);
shuffle($numbers);
//跳过list第一个值(保存的是索引)
while(list(,$number)=each($numbers)){
echo"$number";
}
?>

方法三

<?php
functionNoRand($begin=0,$end=20,$limit=5){
$rand_array=range($begin,$end);
shuffle($rand_array);//调用现成的数组随机排列函数
returnarray_slice($rand_array,0,$limit);//截取前$limit个
}
print_r(NoRand());
?>

方法四

<?php
$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1,20);
$tmp=array_unique($tmp);
}
print_r($tmp);
?>

方法五

<?php
$tmp=range(1,30);
print_r(array_rand($tmp,10));
?>

都在这咯,希望可以帮到你

热点内容
微信收藏表情文件夹 发布:2025-01-16 19:28:57 浏览:14
ra服务器搭建 发布:2025-01-16 19:28:12 浏览:17
javaftp读取 发布:2025-01-16 19:28:02 浏览:184
乐课上传作业 发布:2025-01-16 19:24:58 浏览:935
哈尔滨python培训 发布:2025-01-16 19:19:30 浏览:915
java对象与线程 发布:2025-01-16 19:14:59 浏览:897
二维码源码vc 发布:2025-01-16 19:14:59 浏览:773
单独编译内核模块 发布:2025-01-16 18:54:26 浏览:805
js解压字符串 发布:2025-01-16 18:54:17 浏览:484
php怎么开启服务器 发布:2025-01-16 18:52:53 浏览:771