1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lkn2015-phpcookbook_3rd_translate

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
chapter1_strings_1.6_生成随机字符串.md 2.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:36 0f1959f

Глава 1. Строки

1.6. Генерация случайных строк

Задача

Требуется сгенерировать случайную строку.

Решение

Для этого используется функция str_rand().

[Пример 1-18]

function str_rand($length = 32,$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') {
    if (!is_int($length) || $length < 0) {
        return false;
    }
    $characters_length = strlen($characters) - 1;
    $string = '';
    for ($i = $length; $i > 0; $i--) {
        $string .= $characters[mt_rand(0, $characters_length)];
    }
    return $string;
}

Обсуждение

В PHP есть несколько встроенных функций для генерации случайных чисел, но нет функции, которая генерировала бы случайные строки. Функция str_rand() возвращает случайную строку длиной 32 байта, состоящую из цифр и букв.

Можно изменить значение параметра $length, чтобы получить строку нужной длины. Если вы хотите ограничить набор символов в строке, просто замените второй параметр $characters на нужный диапазон символов (передайте целое число в первый параметр, чтобы указать длину желаемой случайной строки, и передайте строку во второй параметр, чтобы задать допустимый диапазон символов). Например, если вы хотите получить случайный 16-битный код Морзе, можно сделать следующее:

Случайный 16-битный код Морзе:

print str_rand(16, '.-');
//Вывод:
.--..-.-.--.----

См. также

Обсуждение того, как получить случайные числа, см. в разделе 2.5.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/lkn2015-phpcookbook_3rd_translate.git
git@api.gitlife.ru:oschina-mirror/lkn2015-phpcookbook_3rd_translate.git
oschina-mirror
lkn2015-phpcookbook_3rd_translate
lkn2015-phpcookbook_3rd_translate
master