PHP 8.4.1 Released!

Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromStringПолучает случайные байты из исходной строки

Описание

public Random\Randomizer::getBytesFromString(string $string, int $length): string

Генерирует из входной строки string строку, содержащую равномерно выбранные случайные байты заданной параметром length длины.

Вероятность выбора байта пропорциональна его доле во входной строке string. Если каждый байт встречается одинаковое количество раз, вероятность выбора каждого байта будет одинаковой.

Список параметров

string

Строка (string), из которой выбираются возвращаемые байты.

length

Длина случайной строки (string) в байтах, которая должна быть возвращена; должна быть равна 1 или больше.

Возвращаемые значения

Возвращает строку (string), содержащую запрошенное количество случайных байтов, взятых из входной строки string.

Ошибки

Примеры

Пример #1 Пример использования метода Random\Randomizer::getBytesFromString()

<?php

$randomizer
= new \Random\Randomizer();

printf(
"%s.example.com",
$randomizer->getBytesFromString('abcdefghijklmnopqrstuvwxyz0123456789', 16)
);
?>

Вывод приведённого примера будет похож на:

3zsw04eiubcf82jd.example.com

Пример #2 Пример генерации случайного кода для многофакторной аутентификации

<?php

// Движок Secure установлен по умолчанию, но укажем его явно, потому что
// многофакторные коды чувствительны к безопасности.
$randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

echo
implode('-', str_split($randomizer->getBytesFromString('0123456789', 20), 5));
?>

Вывод приведённого примера будет похож на:

11551-80418-27047-42075

Пример #3 Пример выбора из строки с неравномерным распределением

<?php

$randomizer
= new \Random\Randomizer();

echo
$randomizer->getBytesFromString('aaaaabcdef', 20);
?>

Вывод приведённого примера будет похож на:

fddacbeaaeaaacaaaaca

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top