當前位置:首頁 » 編程語言 » 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));
?>

都在這咯,希望可以幫到你

熱點內容
qtc比python好用 發布:2025-01-16 18:39:48 瀏覽:488
電腦有免費伺服器嗎 發布:2025-01-16 18:35:28 瀏覽:220
sql生成唯一 發布:2025-01-16 18:35:25 瀏覽:223
圖片滾動源碼 發布:2025-01-16 18:35:18 瀏覽:300
運維和php 發布:2025-01-16 18:21:46 瀏覽:877
舊電腦改web伺服器 發布:2025-01-16 18:20:49 瀏覽:49
喝酒最好的解壓方法 發布:2025-01-16 18:19:05 瀏覽:523
壓縮包設置了密碼 發布:2025-01-16 18:18:13 瀏覽:646
android圖片瀏覽器源碼 發布:2025-01-16 18:08:54 瀏覽:651
編譯代碼技巧 發布:2025-01-16 18:06:26 瀏覽:647