Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Làm thế nào tôi có thể tạo ra một số duy nhất 6 chữ số? Tôi có cơ chế xác minh tại chỗ để kiểm tra các mục trùng lặp.

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Peterh

11.1K16 Huy hiệu vàng84 Huy hiệu bạc103 Huy hiệu đồng16 gold badges84 silver badges103 bronze badges

hỏi ngày 28 tháng 3 năm 2011 lúc 20:50Mar 28, 2011 at 20:50

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

2

$six_digit_random_number = random_int(100000, 999999);

Tất cả các con số từ 100.000 đến 999.999 là sáu chữ số, tất nhiên.

Đã trả lời ngày 28 tháng 3 năm 2011 lúc 20:52Mar 28, 2011 at 20:52

CharlescharlesCharles

50,5K13 Huy hiệu vàng103 Huy hiệu bạc141 Huy hiệu đồng13 gold badges103 silver badges141 bronze badges

6

Nếu bạn muốn nó bắt đầu tại

$num_str = sprintf("%06d", mt_rand(1, 999999));
4 và truy cập
$num_str = sprintf("%06d", mt_rand(1, 999999));
5:

$num_str = sprintf("%06d", mt_rand(1, 999999));

Tâm trí bạn, nó được lưu trữ như một chuỗi.

Đã trả lời ngày 28 tháng 3 năm 2011 lúc 20:52Mar 28, 2011 at 20:52

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

CharlescharlesTim Cooper

50,5K13 Huy hiệu vàng103 Huy hiệu bạc141 Huy hiệu đồng37 gold badges322 silver badges275 bronze badges

1

Nếu bạn muốn nó bắt đầu tại

$num_str = sprintf("%06d", mt_rand(1, 999999));
4 và truy cập
$num_str = sprintf("%06d", mt_rand(1, 999999));
5:

str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);

Tâm trí bạn, nó được lưu trữ như một chuỗi.

Tim Coopertim Coopercheck for duplicates, but be cautious since when most numbers will be used, the number of "attempts" (and therefore the time taken) for getting a new number will increase, possibly resulting in very long delays & wasting CPU resources.

155K37 Huy hiệu vàng322 Huy hiệu bạc275 Huy hiệu Đồng

$arrayOfAvailableIDs = array_map(function($nb) {
    return str_pad($nb, 6, '0', STR_PAD_LEFT);
}, range(0, 999999));

$nbAvailableIDs = count($arrayOfAvailableIDs);

// pick a random ID

$newID = array_splice($arrayOfAvailableIDs, mt_rand(0, $nbAvailableIDs-1), 1);
$nbAvailableIDs--;

Một cái khác:

Dù sao, đối với tính độc đáo, bạn sẽ phải kiểm tra xem số của bạn chưa được sử dụng.Mar 28, 2011 at 20:54

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Bạn nói rằng bạn kiểm tra các bản sao, nhưng hãy thận trọng vì khi hầu hết các số sẽ được sử dụng, số lượng "nỗ lực" (và do đó thời gian thực hiện) để có được một số mới sẽ tăng lên, có thể dẫn đến sự chậm trễ rất dài và lãng phí tài nguyên CPU CPU .Maxime Pacary

Tôi sẽ khuyên, nếu có thể, để theo dõi ID có sẵn trong một mảng, sau đó chọn ngẫu nhiên một ID trong số các ID có sẵn, bằng cách làm một cái gì đó như thế này (nếu danh sách ID được giữ trong bộ nhớ):11 gold badges82 silver badges110 bronze badges

Bạn có thể làm một cái gì đó tương tự ngay cả khi danh sách ID được lưu trữ trong cơ sở dữ liệu.

$key = random_int(0, 999999);
$key = str_pad($key, 6, 0, STR_PAD_LEFT);
return $key;

Đã trả lời ngày 28 tháng 3 năm 2011 lúc 20:54

Maxime PacaryMaxime Pacary

function generateKey($keyLength) {
    // Set a blank variable to store the key in
    $key = "";
    for ($x = 1; $x <= $keyLength; $x++) {
        // Set each digit
        $key .= random_int(0, 9);
    }
    return $key;
}

21.8K11 Huy hiệu vàng82 Huy hiệu bạc110 Huy hiệu đồng

Có một số câu trả lời tuyệt vời, nhưng nhiều chức năng sử dụng được gắn cờ là không an toàn về mặt mật mã. Nếu bạn muốn một số 6 chữ số ngẫu nhiên được bảo mật bằng mã hóa, bạn có thể sử dụng một cái gì đó như thế này:Feb 25, 2021 at 4:59

Mav2287Mav2287Mav2287

Điều này cũng sẽ bao gồm các số như 000182 và các số khác sẽ được loại trừ khỏi các ví dụ khác.2 gold badges9 silver badges21 bronze badges

4

Bạn cũng có thể sử dụng một vòng lặp để làm cho mỗi chữ số ngẫu nhiên và tạo số ngẫu nhiên với bao nhiêu chữ số mà bạn có thể cần:

substr(number_format(time() * rand(),0,'',''),0,6);

Để tham khảo, Random_int - Tạo các số nguyên giả an toàn bằng mã hóa phù hợp để sử dụng trong đó kết quả không thiên vị là rất quan trọng, chẳng hạn như khi xáo trộn một boong thẻ cho một trò chơi poker. " - php.net/random_intJun 5, 2013 at 17:38

law.vzmklaw.vzmklaw.vzmk

Đã trả lời ngày 25 tháng 2 năm 2021 lúc 4:591 silver badge3 bronze badges


7862 Huy hiệu vàng9 Huy hiệu bạc21 Huy hiệu đồng

Đây là một số khác:Oct 19, 2015 at 16:25

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Đã trả lời ngày 5 tháng 6 năm 2013 lúc 17:38virus

1341 Huy hiệu bạc3 Huy hiệu đồng1 silver badge3 bronze badges

0

Tôi hy vọng điều này sẽ hoạt động tốt. Tôi sử dụng cùng một kỹ thuật trong trang web của tôi.

$randomSixDigitInt = \random_int(100000, 999999);

Đã trả lời ngày 19 tháng 10 năm 2015 lúc 16:25

Virusvirus

871 Huy hiệu bạc3 Huy hiệu đồng

Trong Php 7.0+ tôi sẽ đề xuất

$num_str = sprintf("%06d", mt_rand(1, 999999));
6 trên
$num_str = sprintf("%06d", mt_rand(1, 999999));
7.

Từ php.net:Sep 11, 2018 at 21:36

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

THẬN TRỌNG Hàm này không tạo ra các giá trị an toàn về mặt mật mã và không nên được sử dụng cho mục đích mật mã. Nếu bạn cần một giá trị bảo mật bằng mã hóa, hãy xem xét sử dụng Random_int (), Random_Bytes () hoặc OpenSSL_Random_Pseudo_Bytes () thay thế.Yes Barry

Vì vậy, điều này phụ thuộc chủ yếu vào bối cảnh. Tôi cũng sẽ thêm rằng kể từ Php 7.1.0

$num_str = sprintf("%06d", mt_rand(1, 999999));
8 hiện là bí danh của
$num_str = sprintf("%06d", mt_rand(1, 999999));
7.4 gold badges48 silver badges67 bronze badges

1

$characters = '123456789';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < 6; $i++) {
    $randomString .= $characters[rand(0, $charactersLength - 1)];
}
$pin=$randomString; 

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Chúc mừng

Đã trả lời ngày 11 tháng 9 năm 2018 lúc 21:362 gold badges10 silver badges28 bronze badges

Có Barryyes BarrySep 6, 2018 at 15:13

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

9.3694 Huy hiệu vàng48 Huy hiệu bạc67 Huy hiệu Đồng

$num_str = sprintf("%06d", mt_rand(1, 999999));
0

JonDec 1, 2015 at 13:23

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

9072 Huy hiệu vàng10 Huy hiệu bạc28 Huy hiệu đồngAnanta Prasad

Đã trả lời ngày 6 tháng 9 năm 2018 lúc 15:132 gold badges22 silver badges35 bronze badges

2

Điều này sẽ tạo ra số 6 chữ số ngẫu nhiên

Đã trả lời ngày 1 tháng 12 năm 2015 lúc 13:23

Ananta Prasadananta Prasad

3.5142 Huy hiệu vàng22 Huy hiệu bạc35 Huy hiệu Đồng

Tôi sẽ sử dụng một thuật toán, lực lượng vũ phu có thể như sau:

Lần đầu tiên qua vòng lặp: Tạo số ngẫu nhiên từ 100.000 đến 999.999 và gọi đó là X1Mar 28, 2011 at 20:56

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

rossb83rossb83rossb83

Lần thứ hai thông qua vòng lặp tạo ra một số ngẫu nhiên trong khoảng từ 100.000 đến x1 gọi XT2 này, sau đó tạo một số ngẫu nhiên giữa x1 và 999.999 Gọi đây là XT3, sau đó chọn ngẫu nhiên x2 hoặc x3, hãy gọi đây là x24 gold badges19 silver badges39 bronze badges

1

Lần thứ n thông qua vòng lặp tạo ra số ngẫu nhiên trong khoảng từ 100.000 đến x1, x1 và x2 và x2 đến 999.999 và vv ...

Xem ra cho các điểm cuối, cũng coi chừng X1

Đã trả lời ngày 28 tháng 3 năm 2011 lúc 20:56Oct 14, 2017 at 9:29

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

1

1.6844 huy hiệu vàng19 Huy hiệu bạc39 Huy hiệu đồng$uniq = round(microtime(true));

str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
0

Bạn có thể tạo số ngẫu nhiênJul 3, 2020 at 3:36

Đã trả lời ngày 14 tháng 10 năm 2017 lúc 9:29

$num_str = sprintf("%06d", mt_rand(1, 999999));
1

Bạn có thể sử dụng $ uniq = vòng (microtime (true));Jan 20, 2021 at 6:27

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Nó tạo ra cơ sở 10 chữ số đúng thời gian không bao giờ được nhân đôiJON

Đã trả lời ngày 11 tháng 9 năm 2018 lúc 21:362 gold badges10 silver badges28 bronze badges

Có Barryyes Barry

$num_str = sprintf("%06d", mt_rand(1, 999999));
2

9.3694 Huy hiệu vàng48 Huy hiệu bạc67 Huy hiệu Đồng

Jon

Mã trên tạo ra một chuỗi 6 chữ số thập phân. Nếu bạn muốn sử dụng một bộ ký tự lớn hơn (chẳng hạn như tất cả các chữ cái trên, tất cả các chữ cái chữ thường và 10 chữ số), đây là một quá trình liên quan hơn, nhưng bạn phải sử dụng

str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
1 hoặc
str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
2 thay vì
$num_str = sprintf("%06d", mt_rand(1, 999999));
8,
$num_str = sprintf("%06d", mt_rand(1, 999999));
7 ,
str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
8, v.v., nếu chuỗi sẽ đóng vai trò là mật khẩu, "mã xác nhận" hoặc giá trị bí mật khác. Xem câu trả lời cho một câu hỏi liên quan và xem thêm: Tạo mã ngẫu nhiên trong PHP?

Tôi cũng liệt kê những điều khác cần ghi nhớ khi tạo các định danh độc đáo, đặc biệt là những người ngẫu nhiên.

Đã trả lời ngày 20 tháng 1 năm 2021 lúc 7:51Jan 20, 2021 at 7:51

Peter O.Peter O.Peter O.

31.5K14 Huy hiệu vàng77 Huy hiệu bạc92 Huy hiệu Đồng14 gold badges77 silver badges92 bronze badges

Đây là phương pháp dễ nhất để tạo số ngẫu nhiên 6 chữ số

$num_str = sprintf("%06d", mt_rand(1, 999999));
3

Đã trả lời ngày 8 tháng 7 lúc 16:18Jul 8 at 16:18

Hướng dẫn generate random 6 digit number in php - tạo số ngẫu nhiên có 6 chữ số trong php

Làm thế nào để tạo số ngẫu nhiên 10 chữ số trong PHP?

echo (rand (). "");tiếng vang (rand (10.100));echo(rand(10,100));

Làm thế nào để tạo ra số duy nhất PHP?

Hàm uniqid () trong PHP là một hàm sẵn được sử dụng để tạo ID duy nhất dựa trên thời gian hiện tại tính bằng micro giây (thời gian vi mô).ID được tạo từ hàm uniqid () không tối ưu vì nó dựa trên thời gian hệ thống và không được bảo mật bằng mã hóa.uniqid() function in PHP is an inbuilt function which is used to generate a unique ID based on the current time in microseconds (micro time). The ID generated from the uniqid() function is not optimal since it is based on the system time and is not cryptographically secured.

Hàm MT_RAND trong PHP là gì?

Định nghĩa và cách sử dụng.Hàm mt_rand () tạo ra một số nguyên ngẫu nhiên bằng thuật toán twister mersenne.Mẹo ví dụ: Nếu bạn muốn một số nguyên ngẫu nhiên trong khoảng từ 10 đến 100 (bao gồm), hãy sử dụng MT_RAND (10.100).generates a random integer using the Mersenne Twister algorithm. Example tip: If you want a random integer between 10 and 100 (inclusive), use mt_rand (10,100).

Làm thế nào để tạo số ngẫu nhiên cho OTP trong PHP?

Vì vậy, đây là một phương thức sử dụng hàm ngẫu nhiên và một số thuật toán để tạo OTP số N-Digit.$ n = 6;print_r (Generatenumericotp ($ n)) ;..
4 hoặc 6 chữ số OTP số ..
4 hoặc 6 chữ cái (chữ thường / chữ hoa) OTP ..
4 hoặc 6 chữ số OTP chữ và số ..