Peki, ben benim yorumum sorulan tüm sorulara açıklık yoktu, ama "olası" bir karakter dizisini ve geri dönmek için dize uzunluğunu alabilir bir işlev istediğinizi varsayalım edeceğiz. Iyice gibi netlik için, daha değişken ben normalde daha kullanarak, istenen yorumladı:
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;
}
Sizin örnek verilerle bu işlevini çağırmak için, gibi bir şey derim:
$original_string = 'abcdefghi';
$random_string = get_random_string($original_string, 6);
Bu işlevi, kendisine iletilen geçerli karekter teklik kontrol unutmayın. Eğer geçerli bir karakter dize ile denir Örneğin, 'AAAB'
, bu bağlı olarak, bir hata ya da bir özelliği olarak kabul edilebilir bir B olarak her harf için bir A seçmek için üç kat daha fazla olurdu sizin ihtiyaçlarınıza.