Kolejny wpis dotyczący języka PHP i zarazem kolejny, który dotyczy operacji na łańcuchach znaków (string) w tymże języku. Tym razem będzie to prosta klasa, która pozwoli nam wygenerować losowy łańcuch znaków, który może nam posłużyć jako kod do weryfikacji, hash, czy losowo wygenerowane hasło.
W tym celu posłużymy się statyczną funkcją generate($length), która przyjmować będzie tylko jeden argument $length, który odpowiadać będzie za długość generowanego ciągu znaków.
public static function generate($length) { // TODO }
Poza tym – musimy sobie stworzyć łańcuch znaków $chars, który zawierać będzie wszystkie dostępne znaki jakie będą mogły wystąpić w wygenerowanym stringu.
private $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Ostatecznie wykorzystamy pętlę for oraz funkcję rand(), która losowo wybierze nam poszczególne wartości ze zdefiniowanego wcześniej łańcucha znaków $chars.
$size = strlen($this->chars); for ($i = 0; $i < $length; $i++) { $randomString .= $this->chars[rand(0, $size - 1)]; }
Cała klasa prezentuje się następująco:
<?php class RandomString { private $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; public static function generate($length) { $randomString = ''; $size = strlen($this->chars); for ($i = 0; $i < $length; $i++) { $randomString .= $this->chars[rand(0, $size - 1)]; } return $randomString; } }
Użycie:
$randomString = RandomString::generate(5); // $randomString = PAozU