Devuelve bytes aleatorios a partir de una cadena

# Random\Randomizer::getBytesFromString

(PHP 8 >= 8.3.0)

Random\Randomizer::getBytesFromString — Devuelve bytes aleatorios a partir de una cadena

### Descripción

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

Genera una cadena que contiene bytes aleatorios seleccionados uniformemente de la `string` de entrada con la `length` solicitada.

La probabilidad de que un byte sea seleccionado es proporcional a su parte de la `string` de entrada. Si cada byte ocurre el mismo número de veces, cada byte tiene la misma probabilidad de ser seleccionado.

### Parámetros

`string`

  La string de entrada a partir de la cual se seleccionan los bytes devueltos.

`length`

  La longitud de la cadena aleatoria string que debe ser devuelta en bytes; debe ser `1` o más.

### Valores devueltos

Una string que contiene el número solicitado de bytes aleatorios tomados de la entrada `string`.

### Errores/Excepciones

- Si `string` está vacía, se lanzará una ValueError.
- Si el valor de `length` es inferior a `1`, se lanzará una ValueError.
- Cualquier Throwable lanzado por el método Random\Engine::generate() del `Random\Randomizer::$engine` subyacente.

### Ejemplos

Ejemplo #1 Ejemplo de Random\Randomizer::getBytesFromString()

    <?php
    $randomizer = new \Random\Randomizer();

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

Resultado del ejemplo anterior es similar a:

    3zsw04eiubcf82jd.example.com

Ejemplo #2 Generar un código aleatorio para la autenticación multi-factor

    <?php
    // El motor Secure es el motor por omisión, pero se hace explícito, ya que
    // los códigos multi-factor son sensibles a la seguridad.
    $randomizer = new \Random\Randomizer(new \Random\Engine\Secure());

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

Resultado del ejemplo anterior es similar a:

    11551-80418-27047-42075

Ejemplo #3 Seleccionar a partir de una cadena con una distribución no uniforme

    <?php
    $randomizer = new \Random\Randomizer();

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

Resultado del ejemplo anterior es similar a:

    fddacbeaaeaaacaaaaca

### Ver también

- Random\Randomizer::getBytes() - Devuelve bytes aleatorios

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open