Quantcast
Channel: łańcuch znaków – Programming is fun
Viewing all articles
Browse latest Browse all 3

Losowy łańcuch znaków (string) w PHP

$
0
0

random_string

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

Viewing all articles
Browse latest Browse all 3

Trending Articles


TRX Antek AVT - 2310 ver 2,0


Автовишка HAULOTTE HA 16 SPX


POTANIACZ


Zrób Sam - rocznik 1985 [PDF] [PL]


Maxgear opinie


BMW E61 2.5d błąd 43E2 - klapa gasząca a DPF


Eveline ➤ Matowe pomadki Velvet Matt Lipstick 500, 506, 5007


Auta / Cars (2006) PLDUB.BRRip.480p.XviD.AC3-LTN / DUBBING PL


Peugeot 508 problem z elektroniką


AŚ Jelenia Góra