Всем снова привет,
есть переменная
Скрытый текст |
$passw="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; |
uniqid();думаю это то, что тебе надо.
$newText = uniqid();
echo $newText;
Цитата |
Сам то делал? |
Цитата |
Ты, прежде чем советовать, попробуй сам |
Цитата |
А за одно внимательно почитай, что это за функция. |
Цитата |
думаю это то, что тебе надо. |
function generatePass($len = 5)но это псевдослучайная строка. Если нужно посерьёзнее, я давал ссылку.
{
$a = range(0, 9);
$b = range('a','z');
$c = range('A', 'Z');
$a = array_merge($a, $b);
$a = array_merge($a, $c);
shuffle($a);
$a = array_slice($a, 0, $len);
return implode('', $a);
}
echo generatePass(rand(4,9));
function generatePass($len = 5)
{
$a = range(0, 9);
$b = range('a','z');
$c = range('A', 'Z');
$arr = array_merge($a, $b);
$arr = array_merge($arr, $c);
$arr = array_merge($arr, $arr);
$rand = microtime(true);
$key = '';
for($i = 0; $i < $len; $i++)
{
shuffle($arr);
$key.= $arr[(round(($rand * 1000 - floor($rand * 1000)),2) * 100 )];
$rand = microtime(true);
}
return $key;
}
echo generatePass(rand(4, 9));
Цитата (qpayct @ 27.06.2010 - 01:24) |
не могу молчать! ставьте стол, чтоб welbox2-у кукарекать было из под чего |
Цитата |
а как сделать повтор функции до определённого момента? |
Цитата |
Ты мог просто объяснить почему не подходит эта функция. |
Цитата |
xotabb какой повтор, объясни толком. |
Цитата |
xotabb народ, так как сделать повтор функции? |
Цитата |
и мне нужно что бы она генерировала мне пароль до тех пор пока он не будет равен например 5ае489н |
Цитата |
YcB2Vd9ef |
for($i=0; $i<6; $i++)
{
$pass.= symbolGenerator(rand(1, 3));
}
echo $pass;
function symbolGenerator($n)
{
switch($n)
{
case 1:
$num = rand(48, 57); // numbers
break;
case 2:
$num = rand(65, 90); // upper
break;
case 3:
$num = rand(97, 122); // lower
break;
}
return chr($num);
}
Цитата (twin @ 27.06.2010 - 22:02) |
эта реализация проигрывает предложенному мной первому варианту почти в 10 раз по скорости при одинаковом результате. |
Цитата |
0.000165 0.000451 0.000180 0.000164 0.000400 0.000162 0.000347 0.000166 0.000481 0.000173 ------------ 0,000269 (в среднем) |
Цитата |
0.000133 0.000424 0.000151 0.000127 0.000128 0.000036 0.000128 0.000123 0.000146 0.000124 ------------ 0,000152 (в среднем) |
function generatePass($len = 5)
{
$a = range(0, 9);
$b = range('a','z');
$c = range('A', 'Z');
$a = array_merge($a, $b);
$a = array_merge($a, $c);
shuffle($a);
$a = array_slice($a, 0, $len);
return implode('', $a);
}
echo generatePass(rand(4,9));
0.000643968582153
0.00061297416687
0.000331163406372
0.000614166259766
0.000612020492554
0.00185990333557
0.0019690990448
0.00097393989563
0.00194096565247
0.00196409225464
$start = microtime();
Сюды код.
$end = microtime();
$timer = $end - $start;
Echo $timer;
$start = microtime(true);
function generatePass($len = 5)
{
$a = range(0, 9);
$b = range('a','z');
$c = range('A', 'Z');
$a = array_merge($a, $b);
$a = array_merge($a, $c);
shuffle($a);
$a = array_slice($a, 0, $len);
return implode('', $a);
}
echo generatePass(rand(4,9));
$end = microtime(true);
$now = $end - $start;
echo "<br /><br />". $now ."<br /><br />";
Цитата |
0.000141859054565 0.000148057937622 0.000355005264282 0.000159025192261 0.000149965286255 |
$start = microtime(true);
for($i=0; $i<rand(4,9); $i++)
{
$pass.= symbolGenerator(rand(1, 3));
}
echo $pass;
$end = microtime(true);
$now = $end - $start;
echo "<br /><br />". $now ."<br /><br />";
function symbolGenerator($n)
{
switch($n)
{
case 1:
$num = rand(48, 57); // numbers
break;
case 2:
$num = rand(65, 90); // upper
break;
case 3:
$num = rand(97, 122); // lower
break;
}
return chr($num);
}
Цитата |
0.000128030776978 0.000117063522339 0.000109910964966 0.000110149383545 0.000123023986816 |
for($i=0; $i<6; $i++)
$start = microtime(true);
function generatePass($len = 5)
{
$a = range(0, 9);
$b = range('a','z');
$c = range('A', 'Z');
$a = array_merge($a, $b);
$a = array_merge($a, $c);
shuffle($a);
$a = array_slice($a, 0, $len);
return implode('', $a);
}
echo generatePass(9);
$end = microtime(true);
$now = $end - $start;
echo "<br /><br />". $now ."<br /><br />";
$start = microtime(true);
for($i=0; $i < 9; $i++)
{
$pass.= symbolGenerator(rand(1, 3));
}
echo $pass;
$end = microtime(true);
$now = $end - $start;
echo "<br /><br />". $now ."<br /><br />";
function symbolGenerator($n)
{
switch($n)
{
case 1:
$num = rand(48, 57); // numbers
break;
case 2:
$num = rand(65, 90); // upper
break;
case 3:
$num = rand(97, 122); // lower
break;
}
return chr($num);
}
function generatePass($len = 5)
{
$a = array_merge(range(0, 9), range('a','z'));
$a = array_merge($a, range('A', 'Z'));
shuffle($a);
$a = array_slice($a, 0, $len);
return implode('', $a);
}