Anton-Killer
08.02.2002, 02:31
Пиплы хай.
Кто мне подскажет,как при помощи РНР сделать такую функцию которая б гинерировала случайное "слово" из английских букв (больших и маленьких) и цифр.
Длинна этого "слова" составляла 7 символов...
Зарание благодарен
если тебе нужно реальное слово - то из базы этих самых словов случайным образом выбираешь слово (подробнее - здесь (http://www.php.net/manual/en/function.rand.php) )
ежли псевдослово (во сказал :cool: ) то из массива буквово случайным образом читаешь семь буковок и JOIN IT! ;)
Если все еще актуально вот кусок кода для генерации паролей (в моем случае нужны были пароли)
$makepass="";
$syllables="er,in,tia,wol,fe,pre,vet,jo,nes,al,len,son,cha,ir,ler,bo,ok,tio,nar,sim,ple,bla,ten,toe,cho,co,lat,spe,ak,er,po,co,lor,pen,cil,li,ght,wh,at,the,he,ck, is,mam,bo,no,fi,ve,any,way,pol,iti,cs,ra,dio,sou,rce,sea,rch,pa,per,com,bo,sp,eak,st,fi,rst,gr,oup,boy,ea,gle,tr,ail,bi,ble,brb,pri,dee,kay,en,be,se";
$syllable_array=explode(",", $syllables);
srand((double)microtime()*1000000);
for ($count=1;$count<=4;$count++) {
if (rand()%10 == 1) {
$makepass .= sprintf("%0.0f",(rand()%50)+1);
} else {
$makepass .= sprintf("%s",$syllable_array[rand()%62]);
}
}
Anton-Killer
09.02.2002, 13:09
А вот кусочек (а может и не кусочек) моей функции!!! :D :D :D
<?
function generate($length = 7) {
$string = "qwertyuiopasdfghjklzxcvbnm";
$string .= strtoupper($string);
$string .= "123456789";
$array = array();
for($i = 0; $i < strlen($string); $i++) {
$array[] = substr($string, $i, 1);
};
shuffle($array);
$replace = "[^A-Za-z0-9]";
$ge = ereg_replace($replace, "", implode('', $array));
$var = strlen($ge) - $length;
$var = ($var < 0 ? 0 : $var);
srand(make_seed());
$gen = substr($ge, rand(0, $var), $length);
return $gen;
};
?>
for ($i=0; $i<7; $i++) {
$s.=chr(rand(ord('a'),ord('z')));
}
тут только маленькиебуковки новсё остальное я думаю несложно доделать...
Anton-Killer
11.02.2002, 01:47
:rolleyes: :confused: :)
А это потвоему что???? :confused:
:) :p :)
Anton-Killer
11.02.2002, 01:48
:) :) :)
А самое главное забыл вставить
$string .= strtoupper($string);
Anton-Killer
11.02.2002, 01:54
можешь посмотреть как работает
http://www.lmz.dp.ua/rand.php
Anton-Killer
11.02.2002, 05:37
а какой значение $i ты присваиваешь в своем цыкле
for ($i=0; $i<7; $i++) {
$s.=chr(rand(ord('a'),ord('z')));
}
слиииииишком сложный вопрос... :)
вроде как от нуля до семи... ему же семь буковок надо было... =)
Anton-Killer
12.02.2002, 03:30
А ты пробовал на деле то, что ты написал?????
:p
м... да...
=)
неполучается? =))))))))
Anton-Killer
12.02.2002, 03:38
Я забыл дописать функцию
без нее никак. :) :) :)
function make_seed() {
list($usec, $sec) = explode(' ', microtime());
return (float) $sec + ((float) $usec * 100000);
};
:) :) :)
Пиплы! Шо вы ерундой занимаетесь!
есть такая класная штуковина, с ее помощью генерятся UID'ы, которые потом пользователям куками раскидываются, так вот можно ее использовать! :)
$uid = md5 (uniqid (rand()));
это получаем слово в 32 символа, потом откусываем с помощью substr нужное хоть из середины строки и привет!
самое то для генерации паролей! :)
Anton-Killer
12.02.2002, 18:22
$uid = md5 (uniqid (rand()));
Спасибо!!! :) :) :)
Anton-Killer
13.02.2002, 01:16
Спасибо Sirgo!!!
Вот попробовал, помогоет. :) :) :) ;)
<?php
$uid = md5 (uniqid (rand()));
$rand=substr($uid, -12, 7);
echo ("$rand");
?>
но нет больших букв, но а нафиг они нужны :) :) :) ;)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.