Poniżej prezentuję prostą funkcję pozwalającą na generowanie losowych ciągów znaków dowolnej długości.
W przeciwieństwie do wbudowanej w PHP funkcji rand(), która potrafi generować jedynie pseudolosowe liczby z zakresu 0 do 32768, poniższa funkcja generuje dowolnej długości ciąg dowolnych znaków.
Oto ona:
function random_string($length)
{
$chars = “0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ”;
for ($i=0; $i < $length; $i++)
{
$rand_str .= substr($chars, rand(0, strlen($chars)-1), 1);
}
return $rand_str;
}
Jeśli chcemy wyświetlić losowy ciąg o długości 10. znaków, wpisujemy:
echo random_string(10);
Jak to działa?
funkcja substr pobiera losowy znak ze zmiennej $chars z zakresu od znaku na pozycji pierwszej – czyli 0 do ostatniego znaku – czyli długość ciągu $chars-1, obliczanego funkcją strlen($chars)-1. Pobierana długość znaków określona jest ostatnim parametrem funkcji substr – czyli tutaj 1 (ostatnia jedynka).
Określaną parametrem funkcji ilość razy zostanie wykonana pętla for, dopisująca do zmiennej $rand_str pojedyncze losowe znaki.
Funkcja w swoim wyniku zwróci właśnie tą zmienną.
Miłego losowania 🙂