Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
<?php
/**
* CREATE RANDOM STRING
*
* @package nulled.ws
* @author Medvoodoo
* @copyright Medvoodoo
* @version 0.1 a
*
*/
class crs
{
/**
* Статический метод предназначен для генерации ключей
*
* $Type варианты ключей, мжет использоваться несколько подряд:
* c - [a-z]
* C - [A-Z]
* d - [0-9]
* a - [A-z]
* A - [A-z][0-9]
*
* @param integer $Num кол-во символов
* @param string $Type какой набор символов использовать
* @param unknown_type $Repeat сколько раз может повторяться символ
* @param unknown_type $ArrayS дополнительные символы
* @return string результирующий ключ
*/
static function create($Num,$Type,$Repeat = 1,$ArrayS = array())
{
$ArrayP = array();//результирующий массив
$Type = "_".$Type;//для скорости
while($Repeat)
{
if(strpos($Type,"c")) $ArrayP = array_merge($ArrayP, range("a","z"));//для маленьких букв
if(strpos($Type,"C")) $ArrayP = array_merge($ArrayP, range("A","Z"));//для больших букв
if(strpos($Type,"d")) $ArrayP = array_merge($ArrayP, range("0","9"));//для цифр
if(strpos($Type,"a")) $ArrayP = array_merge($ArrayP, range("A","z"));//для всех символов диапазона A-z
if(strpos($Type,"A")) $ArrayP = array_merge($ArrayP, range("A","z"), range("0","9"));//для всех символов включая цифры
$ArrayP = array_merge($ArrayP,$ArrayS);//добавляю
$Repeat--;
}
shuffle($ArrayP);
return implode("",array_rand(array_flip($ArrayP),$Num));
}
}
//примеры
print "5 символов [a-z][A-Z] без повторений :".crs::create(5,"cC")."<br>";
print "6 символов [0-9] возможны 2 повторения :".crs::create(6,"d",2)."<br>";
print "10 символов [A-z][0-9](АБВ) возможны 4 повторения :".crs::create(10,"A",4,array("А","Б","В"))."<br>";
случаем с array_slice не перепутал?к предыдущим постам: перед array_rand необходим shuffle($ArrayP); т.к. срез массива берется подряд!!!!
А вот тут уже скажу "ЗочеД"... Это ближе к телу
Только одно пожелание - for заменить на foreach - так красивше
function genPasswd ( $length )
{
$charlist = array_diff(range(65, 122), range(90, 97));
shuffle($charlist);
$charlist = array_slice($charlist, 0, $length);
$charlist = array_map('chr', $charlist);
$charlist = join('', $charlist);
return $charlist;
}