PHP 'd79jd8c': Nasıl bir (sözde) rasgele alfa-sayısal dize, gibi bir şey üretebilir?
Öncelikle bütün olası karakterler ile bir dize olun:
$characters = 'abcdefghijklmnopqrstuvwxyz0123456789';
Ayrıca range() daha hızlı yapmak için kullanabilirsiniz.
Sonra, bir döngü içinde, rastgele bir numara seçin ve rastgele bir karakter almak için $ karakterleri dize dizin olarak kullanmak, ve dize ekleyebilirsiniz:
$string = '';
for ($i = 0; $i < $random_string_length; $i++) {
$string .= $characters[rand(0, strlen($characters) - 1)];
}
$ Random_string_length rasgele dize uzunluğudur.
$ RANGE_START, $ RANGE_SIZE ASCII tablosundaki ondalık sütundan bir değerdir: harf, bir dizi almak için ASCII table kullanın.
Ben bu yöntemi to the method described karakter aralığı özellikle başka bir dize içinde tanımlanır nerede karşılaştırıldığında güzel olduğunu bulmak.
// range is numbers (48) through capital and lower case letters (122)
$range_start = 48;
$range_end = 122;
$random_string = "";
$random_string_length = 10;
for ($i = 0; $i < $random_string_length; $i++) {
$ascii_no = round( mt_rand( $range_start , $range_end ) ); // generates a number within the range
// finds the character represented by $ascii_no and adds it to the random string
// study **chr** function for a better understanding
$random_string .= chr( $ascii_no );
}
echo $random_string;
Bakınız:
Belki burada bir şey kaçırmış, ama here's a way using the uniqid() function.
Generate Random Strings Using PHP de örnek kod, sadece bunu sağlar. Php biraz bilgi sahibi olan, size ihtiyacınız rastgele dizeler tip almak için bu işlevi özelleştirebilirsiniz:
Jeremy'nin cevabı harika. Benim gibi, range () uygulamak için nasıl emin değilseniz, eğer, range () kullanarak benim sürümü görebilirsiniz.
<?php
$character_array = array_merge(range(a, z), range(0, 9));
$string = "";
for($i = 0; $i < 6; $i++) {
$string .= $character_array[rand(0, (count($character_array) - 1))];
}
echo $string;
?>
Bu Jeremy olarak aynı şeyi yapar ama bir dize kullanan birleştirilmiş diziler kullanır, ve o (strlen kullanan sayısı ()) kullanır.