導航:首頁 > 編程語言 > php自動生成編號

php自動生成編號

發布時間:2023-05-19 16:26:29

php隨即生成6位數三位0-9三位a-z

以下函數可以實現隨機生成6位數,且其中三位為數字,另外三位為小寫字母:

functionmyRand(){
if(PHP_VERSION<'4.2.0'){
srand();
}
$randArr=array();
for($i=0;$i<3;$i++){
$randArr[$i]=rand(0,9);
$randArr[$i+3]=chr(rand(0,25)+97);
}
shuffle($randArr);
returnimplode('',$randArr);
}

解釋:

  1. PHP_VERSION < '4.2.0'判斷PHP的版本,在版本>=4.2.0時,rand函數會自動播種,不需要調用srand,故此處只有在低於4.2.0版本下需要播種

  2. rand函數會產生一個隨機數,范圍是兩個參數之間的整數(包括邊界),如rand(0,9)返回0~9中的任意一個(包括0和9)

  3. chr返回指定ascii碼所代表的字元,97為a的ascii碼,chr(rand(0, 25) + 97)返回a-z中任意一個字元

  4. shuffle函數會將數組的順序打亂

  5. implode將數組中的元素用空白的字元連接成字元串,即拼接數組成為一個字元串

Ⅱ PHP數字字元串左側補0、字元串填充和自動補齊的幾種方法

一、數字補0.
如果要自動生成學號,自動生成某某編號,就像這樣的形式「d0000009」、「d0000027」時,那麼就會面臨一個問題,怎麼把左邊用0補齊成這樣8位數的編碼呢?我想到了兩種方法實現這個功能。
方法一:
先構造一個數字10000000,千萬,也就是一個1,7個0,然後加上當前的編號(比如是3),那麼就得到
10000003,用字元串截取
substr('10000003',1,7)後就得到0000003,最後在與「d」拼接,就得到了最終的編號d0000003。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$temp_num
=
10000000;
$new_num
=
$num
+
$temp_num;
$real_num
=
"d".substr($new_num,1,7); //即截取掉最前面的「1」
echo
$real_num;
?>
方法二:
測出當前編號(比如是3)的長度strlen('3')=1,用要生成編號的總長度減去當前編號長度,得到需要填充0的個數,然後再用for循環填充0即可。
源碼如下:
復制代碼
代碼如下:
<?php
$num
=
3;
$bit
=
7;//產生7位數的數字編號
$num_len
=
strlen($num);
$zero
=
'';
for($i=$num_len;
$i<$bit;
$i++){
$zero
.=
"0";
}
$real_num
=
"d".$zero.$num;
echo
$real_num;
?>
方法三:另外幾種方法
復制代碼
代碼如下:
<?php

$sourceNumber
=
"1";

$newNumber
=
substr(strval($sourceNumber+1000),1,3);

echo
"$newNumber";
?>
/*這個時候就會出現:001
如果要增加位數的話可以將1000加大,然後把3也加大。
舉例:如果我要補上
"4個0"
第03行
就要變成這樣。*/
復制代碼
代碼如下:
<?php

$newNumber
=
substr(strval($sourceNumber+100000),1,5);
?>
/*其實就是總共要顯示幾位數字,就把$sourceNumber+1後面補上多少個0,最後一個數字就直接改成顯示幾位數字。*/
復制代碼
代碼如下:
/*string
str_pad
(
string
$input,
int
$pad_length
[,
string
$pad_string
[,
int
$pad_type]]
)*/
<?php
$input
=
"Alien";
echo
str_pad($input,
10);
//
proces
"Alien
"
echo
str_pad($input,
10,
"-=",
STR_PAD_LEFT);
//
proces
"-=-=-Alien"
echo
str_pad($input,
10,
"_",
STR_PAD_BOTH);
//
proces
"__Alien___"
echo
str_pad($input,
6
,
"___");
//
proces
"Alien_"
?>
/*補齊字元串的長度.以pad_string
補.默認補在右邊,如果STR_PAD_LEFT就補到左邊,STR_PAD_BOTH兩邊一起補。下次用str_pad,畢竟是內置的,肯定比自定義的快。*/
復制代碼
代碼如下:
/*
你上面的方法我覺得不怎麼好,介紹一下我寫的一個方法。方法函數如下,這樣當你要的結果001的話,方法:dispRepair('1',3,'0')
功能:補位函數
str:原字元串
type:類型,0為後補,1為前補
len:新字元串長度
msg:填補字元
*/
function
dispRepair($str,$len,$msg,$type='1')
{

$length
=
$len
-
strlen($str);

if($length<1)return
$str;

if
($type
==
1)
{

$str
=
str_repeat($msg,$length).$str;

}
else
{

$str
.=
str_repeat($msg,$length);

}

return
$str;
}
二、字元串填充、自動補齊、自動補全
遇到要輸出一定長度字元串的時候,可以使用一下兩種方法進行PHP字元串自動填充、自動補全

方法一:
復制代碼
代碼如下:$newStr=
sprintf('%05s',
$str);
sprintf()的功能非常靈活,上面的格式字元串中,「%05s
」表示輸出成長度為5的字元串,如果長度不足,左邊以零補全;如果寫成
「%5s
」,則默認以空格補全;如果希望使用其它字元補全,則要在該字元前加上單引號,即形如「%'#5s
」的表示以井號補全;最後,如果希望補全發生在
字元串右邊,則在百分號後加上減號,「%-05s
」。
方法二:
[code]$cd_no
=
str_pad(++$next_cd_no,8,'#',STR_PAD_LEFT);
str_pad(string,length,pad_string,pad_type):具體用法查看手冊。
string
必需。規定要填充的字元串。
length
必需。規定新字元串的長度。如果該值小於原始字元串的長度,則不進行任何操作。
pad_string
可選。規定供填充使用的字元串。默認是空白。
pad_type
可選。規定填充字元串的那邊。
這兩種方法很方便的實現了PHP字元串的自動補全功能。

Ⅲ 怎麼實現php:自動編號規則:日期+當天項目的編號

怎麼實現php:自動編號規則:日期+當天項目的編號?當天項目編號從0開始,到第二天又是從0開始的。

Ⅳ 怎麼用JS或PHP實現自動生成單據編號(以10+當天日期的格式)

php:
$number
=
"10".date("Ymd",time());
可以得到10開頭緊接年月日及時間(到秒)如1020120603
$number
=
"10".date("YmdHis",time());
可以得到10開頭緊接年月日及時間(到秒)如1020120603231120
如果怕有重復可以在接一些隨機數
$number
.=
rand(1000,9999);

Ⅳ php 自動生成序號問題

syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '鍵罩哪悶者}' in

少個稿碼}

閱讀全文

與php自動生成編號相關的資料

熱點內容
我的世界如何編程 瀏覽:84
vue反編譯代碼有問題 瀏覽:948
linuxshell字元串連接字元串 瀏覽:51
androidviewpager刷新 瀏覽:438
python編程計算平均分 瀏覽:678
加密數字貨幣市值查詢 瀏覽:692
時尚商圈app怎麼樣 瀏覽:584
stacklesspython教程 瀏覽:138
用命令行禁用135埠 瀏覽:212
linux防火牆編程 瀏覽:627
pdf閱讀器刪除 瀏覽:979
考研人如何緩解壓力 瀏覽:822
買電暖壺哪個app便宜 瀏覽:505
洛克王國忘記伺服器了怎麼辦 瀏覽:782
為什麼cf登錄伺服器沒反應 瀏覽:695
伺服器如何獲取文件列表 瀏覽:672
creo五軸編程光碟 瀏覽:14
蘋果app網路驗證在哪裡 瀏覽:14
博科清空命令 瀏覽:384
簡愛英文pdf 瀏覽:376