Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Генерация случайной последовательности знаков
 
 автор: Pavloff.D   (01.07.2007 в 09:09)   письмо автору
 
 

Подскажите пожалуйста, как можно написать функцию генерирующую случайные цыфры и буквы длинной скажем в 10 символов

Спасибо.

   
 
 автор: WebTech   (01.07.2007 в 11:27)   письмо автору
 
   для: Pavloff.D   (01.07.2007 в 09:09)
 

Можно так


<?php
$word_length 
10// количество символов в слове
 // добавьте ниже еще какие хотите символы
$chars 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345678 9abcdefghijklmnopqrstuvwxyz!@#$%^';
$chars_num strlen($chars);
srand ((double)microtime()*1000000);
for (
$i=1$i<=$word_length$i++)
{
$pos rand(1$chars_num);
$word .= substr($chars$pos1);
}
echo 
$word;
?>


Рекомендую исключить похожие символы, например, единица "1" и строчная L - "l"

   
 
 автор: Yuriev   (01.07.2007 в 12:04)   письмо автору
 
   для: WebTech   (01.07.2007 в 11:27)
 

А первая (левая) буква будет участвовать?

   
 
 автор: Unkind   (01.07.2007 в 14:41)   письмо автору
 
   для: Yuriev   (01.07.2007 в 12:04)
 

Нет. К тому же иногда будет не такое кол-во символов, какое нужно, т.к. символа $chars[strlen($chars)] никогда не существовать не будет.

Этот кусок:

$pos = rand(1, $chars_num); 
$word .= substr($chars, $pos, 1);

Надо заменить на

<?php
$pos 
rand(0$chars_num 1); 
$word .= $chars[$pos];
?>

   
 
 автор: WebTech   (01.07.2007 в 17:40)   письмо автору
 
   для: Unkind   (01.07.2007 в 14:41)
 

Да, спасибо! Не доработал...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования