La clase PHP Random Number Generator puede generar una cadena aleatoria en base al algoritmo Mersenne Twister.
Se puede generar una cadena de texto aleatoria de una determinada longitud y creada a partir de dígitos o letras en mayúsculas y minúsculas.
La clase también permite la inclusión de una lista de caracteres dados que se agregarán a la cadena generada.
Entre los archivos encontrarás una demostración a través del archivo example.php
Autor: Er. Rochak Chauhan
Descargar: PHP Random Number Generator
Entre los archivos encontrarás una demostración a través del archivo example.php
Autor: Er. Rochak Chauhan
Descargar: PHP Random Number Generator
PhpRandomNumberGenerator.inc.php
<?php /** * Class to generate random unique string and/or numbers. * * @author Rochak Chauhan <rochakchauhan@gmail.com> */ class PhpRandomNumberGenerator { private $charLimit = 8; private $charArray = array(); function generateNumber() { $bits = $this->charLimit * 5; $nos = (int) $bits / 25; $random = ""; for ($i = 0; $i <= $nos; $i++) { $random.=$this->getRandomBinaryNumbers(); } $random = chunk_split($random, 5, "#*#"); //Set default char set if (count($this->charArray) < (($this->charLimit)*2) ) { $this->setDefaultCharArray(); } $number = ""; $tmpArray = explode("#*#", $random); foreach ($tmpArray as $ref => $b) { $b = bindec($b); $b = (int) $b; if ($b >= 0) { $c = $this->charArray[$b]; $number.= $c; } } $strlen = strlen($number); $diff = $strlen - $this->charLimit; if ($diff < 0) { $diff = abs($diff); $pre = ""; for ($i = 0; $i < $diff; $i++) { $pre.="0"; } $number = $pre . $number; } $number = substr($number, 0, $this->charLimit); return $number; } /** * Function to set Default Char Array */ private function setDefaultCharArray() { $numbersArray = $this->generateNumbersArray(); $this->charArray = array_merge($this->charArray, $numbersArray); $upperCaseArray = $this->generateUpperCaseArray(); $this->charArray = array_merge($this->charArray, $upperCaseArray); $lowerCaseArray = $this->generateLowerCaseArray(); $this->charArray = array_merge($this->charArray, $lowerCaseArray); } /** * Function to generate lowercase alphbets array * * @return array */ private function generateLowerCaseArray() { $return = array(); for ($i = 97; $i <= 122; $i++) { $return[] = chr($i); } return $return; } /** * Function to generate uppercase alphbets array * * @return array */ private function generateUpperCaseArray() { $return = array(); for ($i = 65; $i <= 90; $i++) { $return[] = chr($i); } return $return; } /** * Function to generate Numbers array * * @return array */ private function generateNumbersArray() { $return = array(); for ($i = 48; $i <= 57; $i++) { $return[] = chr($i); } return $return; } /** * Function to Generate Randaom Binary Numbers (between 25-30 chars) * * @return string */ private function getRandomBinaryNumbers() { $rand = mt_rand(); return decbin($rand); } /** * Function to set Char Limit * * @param int $char_limit * @return void */ function setCharLimit($char_limit) { $this->charLimit = $char_limit; } /** * Function to set CharArray * * @param int $charArray * @return void */ function setType($charArray) { $this->charArray = array_merge($this->charArray, $charArray); } } ?>
No hay comentarios:
Publicar un comentario