Nasıl rastgele bir dize oluşturmak için PHP kullanarak?
Rand rasgele tamsayılar oluşturur PHP, ama rastgele bir dize oluşturmak için en iyi yolu nedir işlevi olduğunu biliyorum:
, 9 özgün dize karakter
$string = 'abcdefghi';
Örnek rasgele dize 6 karakter sınırlayıcı
$string = 'ibfeca';
Fonksiyonlar bu tip bir ton buldum, temelde her adımda arkasındaki mantığı anlamaya çalışıyorum. GÜNCELLEME:
GÜNCELLEME: Bu fonksiyonu gerekli karakter herhangi bir miktarda üretmek gerekir.
Eğer parçalar yanıt yorum yapın.
CEVAP
Gelmediğini açıklığa kavuşturmak tüm soruları sordum benim yorum, ama ben öyleymiş gibi kabul edeceğiz istediğiniz bir işlevi bir dize "olası" bir karakter ve bir uzunlukta bir dize döndürür. İstediğin gibi iyice yorumladı, ben daha fazla değişken kullanarak normalde, açıklık getirmek için:
function get_random_string($valid_chars, $length)
{
// start with an empty random string
$random_string = "";
// count the number of chars in the valid chars string so we know how many choices we have
$num_valid_chars = strlen($valid_chars);
// repeat the steps until we've created a string of the right length
for ($i = 0; $i < $length; $i )
{
// pick a random number from 1 up to the number of valid chars
$random_pick = mt_rand(1, $num_valid_chars);
// take the random character out of the string of valid chars
// subtract 1 from $random_pick because strings are indexed starting at 0, and we started picking at 1
$random_char = $valid_chars[$random_pick-1];
// add the randomly-chosen char onto the end of our string so far
$random_string .= $random_char;
}
// return our finished random string
return $random_string;
}
Örnek veri ile bu işlevi çağırmak için böyle bir şey diyebilirsin:
$original_string = 'abcdefghi';
$random_string = get_random_string($original_string, 6);
Bu işlev, geçerli karakter için geçen özgünlük için kontrol yok unutmayın. Örneğin, adı geçerli bir karakter dize 'AAAB'
verilecek üç kat daha fazla tercih için her harfi B olabilir olarak kabul bir hata ya da bir özelliği, bağlı ihtiyacı var.
Nasıl en iyi Ruby rastgele bir dize ol...
Nasıl alfa-sayısal rasgele bir dize ol...
Nasıl bir dosyanın içeriğini bir Java ...
nasıl bir dize bir akışı oluşturmak iç...
Nasıl C rastgele bir sayı oluşturmak i...