Funkcja generująca losowy ciąg znaków

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 🙂